Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.18;
Скачать: CL | DM;

Вниз

Дата в строку   Найти похожие ветки 

 
star77   (2002-07-04 20:26) [0]

Уважаемые Мастера!
Помогите пользователю с написанием
функции для преобразования номера месяца в
строку . В виде процедуры написать умудрился,
но на большее не хватает знаний. Добавьте
нужное и уберите лишнее. Заранее благодарен.
Вот текст:

procedure Tfm_main.FormCreate(Sender: TObject);
const
arr_mesyaz: array[1..12] of string[10]=(
"января","февраля",
"марта","апреля,"мая",
"июня","июля","августа",
"сентября","октября","ноября",
"декабря");
var dat:string[8];
day:string[2];
month:string[2];
year:string[2];
month_txt:string[10];// месяц прописью
x:integer;
begin
dat:=DateToStr(Date);
day:=copy(dat,1,2);
month:=copy(dat,4,2);
year:=copy(dat,7,2);
if (pos("0",month)=1) then delete (month,1,1);
x:=StrToInt(month);
month_txt:=arr_mesyaz[x];
StatusBar1.SimpleText:=" Сегодня: "+day+" "+month_txt+" 20"+year+" года";
end;


 
Viewer   (2002-07-04 20:51) [1]

function Doit(dt: TDateTime): string
var
arrM: array[1..12] of string (.....);
y, m, day: Word;
begin
DecodeDate(dt, y, m, day);
Result := Format("Сегодня %d %s %d года",[day, arrM[m], y]);
end;


 
yozhik ©   (2002-07-04 21:01) [2]

по моему так лучше :)
procedure Tfm_main.FormCreate(Sender: TObject);
const
begin
StatusBar1.SimpleText:=" Сегодня: "+FormatDateTime("d (dddd) mmmm yyyy", Date)+" года";
end;

но если тебе надо с сохранением падежей тогда так:
procedure Tfm_main.FormCreate(Sender: TObject);
const
arr_mesyaz: array[1..12] of string[10]=(
"января","февраля",
"марта","апреля,"мая",
"июня","июля","августа",
"сентября","октября","ноября",
"декабря");
var day, month, year: word;
begin
DecodeDate(Date, year, month, day)
StatusBar1.SimpleText:=" Сегодня: "+IntToStr(day)+" "+arr_mesyaz[month]+" "+IntToStr
(year)+" года";
end;




 
DeMoN-777 ©   (2002-07-04 21:11) [3]

В UBFD посмотри в соответвующем разделе.


 
Viewer   (2002-07-04 21:18) [4]

Да.. Очень большие отличия ;))
Кроме того, как минимум, в два раза медленнее.


 
kull ©   (2002-07-05 01:24) [5]


> Кроме того, как минимум, в два раза медленнее.

Минздрав предупреждает:
Не занимайтесь преждевременной оптимизацией - вредно для здоровья проекта.


 
Viewer   (2002-07-05 10:47) [6]

То-то мы наблюдаем, что для решения тех же задач, что решались раньше на XT, сейчас уже и пней 4-х не хватает ;))


 
FOX ©   (2002-07-05 15:19) [7]

выводит дату с учетом падежа.
function FormatLanguageDate(aDate : TDateTime) : string;
var SysTime : Tsystemtime; Buffer: array[0..1023] of Char;
Year, Month, Day: Word;
begin
DecodeDate(aDate, Year, Month, Day);
SysTime.wYear := Year;
SysTime.wMonth := Month;
SysTime.wDay := Day;
SetString(Result, Buffer, GetDateFormat(LOCALE_SYSTEM_DEFAULT,
DATE_LONGDATE, @SysTime, nil, Buffer, SizeOf(Buffer))-1);
end;


 
Виктор Щербаков ©   (2002-07-05 16:07) [8]

Viewer (05.07.02 10:47)
Зато сколько рюшечек в интерфейс понавешали, особенно в XP :)



Страницы: 1 вся ветка

Текущий архив: 2002.07.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
14-58282
AngeL B.
2002-06-21 09:55
2002.07.18
клиарты для программиста


4-58375
dumb
2002-05-17 22:35
2002.07.18
Запуск консольного приложения...


1-58077
gonzales
2002-07-08 11:22
2002.07.18
ошибка запуска программы


1-58069
werr
2002-07-05 17:04
2002.07.18
Как узнать каким юзером занят файл?


1-58043
Коля
2002-07-08 00:54
2002.07.18
Про потоки и выходы из них