Главная страница
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
3-58001
Weare
2002-06-27 10:52
2002.07.18
Пропадают события в Object Inspector...


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


1-58085
diww
2002-07-05 10:37
2002.07.18
Как узнать размер шрифта Windows?


8-58230
Ash
2002-01-31 02:51
2002.07.18
Уважаемые мастера, фактура поверхности в рисунке...


3-58008
DenNNis
2002-06-27 10:15
2002.07.18
Связь таблиц