![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Порядковый номер дня в году [D7, WinXP]
kyn66 © (2006-04-18 17:03:00)Мастера! Есть-ли механизм, чтобы определить САБЖ?
kilkennyCat (2006-04-18 19:14:00) [1]
> А это не подгонка? ;-)
DaysBetween counts only whole days. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.
kyn66 (2006-04-18 19:11:00) [2]А это не подгонка? ;-)
Вот нашел, вроде правильно работает
(DayOfTheYear(StrToDate('10.04.2006')));
Anatoly Podgoretsky (2006-04-18 18:58:00) [3]+1
kyn66 (2006-04-18 18:49:00) [4]Хотя проверил и получил...
DaysBetween(StrToDate('01.01.2006'), StrToDate('10.04.2006'))
По идее должно быть 100, а получается 99, почему?
kyn66 (2006-04-18 18:03:00) [5]> Desdechado
Если тока так, то спасибо за ликбез 8-)
Desdechado (2006-04-18 18:01:00) [6]> как контролируется високосный год
елы-палы, ты подумать можешь?
разница между 2 датами дает твой порядковый день года, а в представлении типа "дата" уже учитываются все високосности и прочие ...
kyn66 (2006-04-18 17:45:00) [7]Вот нашел, и что тут можно понять про високосный год?
function DayOfTheYear(const AValue: TDateTime): Word;
begin
Result := Trunc(AValue - StartOfTheYear(AValue)) + 1;
end;
....
function StartOfTheYear(const AValue: TDateTime): TDateTime;
begin
Result := EncodeDate(YearOf(AValue), 1, 1);
end;
...
function YearOf(const AValue: TDateTime): Word;
var
LMonth, LDay: Word;
begin
DecodeDate(AValue, Result, LMonth, LDay);
end;
Игорь Шевченко (2006-04-18 17:38:00) [8]
> а как контролируется високосный год?.
А у фукнции наверняка исходный текст есть.
kyn66 (2006-04-18 17:36:00) [9]Хм... ДА, действительно нашел функцию DayOfTheYear, а как контролируется високосный год?. А спросил про механизм потому, что нужно применить не только в Дельфи.
MBo (2006-04-18 17:07:00) [10]Да. Механизм такой - открываем хелп и начинаем набирать DayOf и выбираем нужное
Desdechado (2006-04-18 17:06:00) [11]а подумать?
из текущей даты вычитаешь 1 января