![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать сколько дней в январе например? [D7, WinXP]
Kat © (2004-11-01 17:45:00)Как узнать сколько дней в январе например
Использую DayOfTheMonth(20.01.2005) Получается 20. Увы не 20 дней в январе.
Poirot (2004-11-02 11:29:00) [1]>> Юрий Зотов © (01.11.04 21:24) [7]
Точна :) Лесипед изобретать все готовы по готовым чертежам:)))
Юрий Зотов (2004-11-01 21:24:00) [2]> KSergey © (01.11.04 20:10) [6]
Наверное, потому, что приведенная функция записывается одной простой строчкой:
MonthDays[IsLeapYear(год), месяц]
И незачем "плодить сущности без необходимости".
KSergey (2004-11-01 20:10:00) [3]> Poirot © (01.11.04 18:02) [5]
> LOL помоему:)))))))))))
А пачиму?
Poirot (2004-11-01 18:02:00) [4]Выдержка из SysUtils:
function IsLeapYear(Year: Word): Boolean;
type
PDayTable = ^TDayTable;
TDayTable = array[1..12] of Word;
{ The MonthDays array can be used to quickly find the number of
days in a month: MonthDays[IsLeapYear(Y), M] }
const
MonthDays: array [Boolean] of TDayTable =
((31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31),
(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31));
LOL помоему:)))))))))))
Kat (2004-11-01 17:52:00) [5]Спасибо!
Andy BitOff (2004-11-01 17:50:00) [6]А ты чего не знаешь сколько дней? Если знаешь, так напиши например так:
Function days (Year:integer; Month:integer):Integer;
begin
Case month of
1: Result:=31;
2: If (Year mod 4 = 0) and ((Year mod 100 <> 0) or (Year mod 400 = 0)) then Result:=29 else Result:=28;
3: Result:=31;
4: Result:=30;
5: Result:=31;
6: Result:=30;
7: Result:=31;
8: Result:=31;
9: Result:=30;
10: Result:=31;
11: Result:=30;
12: Result:=31;
end;
end;
Тестировщица (2004-11-01 17:49:00) [7]DaysInAMonth
begin...end (2004-11-01 17:47:00) [8]
> Kat (01.11.04 17:45)
А причём здесь DayOfTheMonth ?
А в январе всегда 31 день.