Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Free Pascal, Pascal ABC и другие _ Функции даты и времени

Автор: klem4 31.01.2007 23:15

Пытаюсь выцепить например текущий час, почему-то постоянно выдает 0

uses DateUtils {, SysUtils };
begin
writeln(HourOf(Today)); { HourOf(Date) }
end.

Автор: volvo 31.01.2007 23:46

blink.gif Ты что, час в дате искать собрался? smile.gif

Вообще-то во времени надо бы:

  writeln(HourOf(Now));


Автор: klem4 1.02.2007 0:00

blink.gif

Цитата
function Today: TDateTime;


Цитата
function HourOf(

const AValue: TDateTime

):Word;


Я вот из таких соображений исходил ...


Автор: volvo 1.02.2007 0:02

А вот из таких не пробовал исходить:

Цитата(rtl.pdf)
4.4.125 Today
Synopsis: Return the current date
Declaration: function Today : TDateTime
Visibility: default
Description: Today is an alias for the Date (1364) function in the sysutils (1322) unit.
?

Так что это ТОЛЬКО дата, а никак не время...

Автор: klem4 1.02.2007 0:19

С слона то я и не приметил)) СПасибо

Автор: klem4 2.02.2007 1:21

Подскажите процедуру или какую глобальную переменную надо изменить, чтобы время выводилось в соответствии LongTimeFormat

Сейчас при выводе времени на экран делю делаю так:

FormatDateTime(LongTimeFormat, Now)

Уверен что можно по другому, как в Делфи например можно было менять DateSeparator и подобные вещи.

Автор: volvo 2.02.2007 1:50

Я не понял, а что, собственно, ты хочешь, чтобы было? Чтобы при WriteLn(Now) сразу выводилось время в длинном формате? Или что?

Автор: klem4 2.02.2007 1:54

Цитата
Чтобы при WriteLn(Now) сразу выводилось время в длинном формате


yes2.gif

Writeln(TimeToStr(Now));

Автор: volvo 2.02.2007 1:59

Время печатается в формате, задаваемом ShortTimeFormat... Следовательно, меняй ShortTimeFormat на тот, который нужен... То есть, тебе надо занести в ShortTimeFormat ту маску, которая обычно соответствует длинному формату:

  shorttimeformat := 'hh:mm:ss';
writeln(timetostr(now));


или еще проще:

  shorttimeformat := longtimeformat; // 'hh:mm:ss';
writeln(timetostr(now));


Автор: klem4 2.02.2007 2:08

Да какраз то что я и пытался найти, спасибо.

Автор: compiler 23.02.2007 16:57

а как найти разницу между переменной датой и сегоднейшй?
мой текст

Uses dateutils;
begin
writeln('diff = ', daysbetween(strtodate('12/02/2007'), strtodate(DateOf(Today))));
end.


заранее благодарен.

Добавлено через 2 мин.
P.S. или этот вопрос лучше в задачи...

Автор: volvo 23.02.2007 19:29

Цитата
мой текст
mad.gif ЭТО - не ТВОЙ текст... Вот напиши СВОЙ, потом будет разговаривать!

Автор: compiler 23.02.2007 19:44

Цитата(volvo @ 23.02.2007 14:29) *

mad.gif ЭТО - не ТВОЙ текст...

как щаблон я взял текст нахождения разници в днях (твой) и нахождения сегоднешней даты(klem4)

Добавлено через 6 мин.
если б я использывал что то другое кто то б сказал было уже:mad: научись пользоваться поиском ...