![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество дней в месяце [D6, D7, Win95/98]
KSION © (2003-01-23 12:14:00)Как узнать количество дней в месяце
Sha (2003-01-28 12:58:00) [1]2 Chubais © (28.01.03 12:32)
Поразительно хорошо или поразительно плохо?
Если первое, то спасибо.
Если второе, то советую сначала все как следует проверить.
Sha (2003-01-28 12:34:00) [2]2 Anatoly Podgoretsky © (28.01.03 11:58)
Делимость на 16 проверить легче, чем делимость на 400.
Chubais (2003-01-28 12:32:00) [3]Sha © (28.01.03 11:49)
поразительно!
Anatoly Podgoretsky (2003-01-28 11:58:00) [4]Вот жто загадочно (Year and 15=0)
Sha (2003-01-28 11:49:00) [5]
LeapYear:= (Year and 3=0)
and ((Year mod 100<>0)
or (Year and 15=0)
and (Year mod 4000<>0));
Reindeer Moss Eater (2003-01-27 16:57:00) [6]Скажу, что Григорианский календарь к этому времени выйдет из употребления
Anatoly Podgoretsky (2003-01-27 16:23:00) [7]Reindeer Moss Eater (23.01.03 17:01)
Что скажешь про 4000 год?
dtrn (2003-01-27 16:15:00) [8]function MaxDayOfMonth(Year,Month:word):integer;Overload;
function MaxDayOfMonth(Date:TDateTime):integer;Overload;
implementation
function MaxDayOfMonth(Year,Month:word):integer;
begin
Result:=PDayTable(
@MonthDays[IsLeapYear(Year)])^[Month];
end;
function MaxDayOfMonth(Date:TDateTime):integer;Overload;
var
Year,Month,Day:Word;
begin
DecodeDate(Date,Year,Month,Day);
Result:=MaxDayOfMonth(Year,Month);
end;
Романов Р.В. (2003-01-23 17:41:00) [9]
> Високосные - делящиеся на 4 без ост-ка, за исключением делящихся
> на 100, за исключением делящихся на 400
Да что вы беспокоитесь. Через 6 лет взорвется Солнце, а тех кто выжевет через 3 года добъет метеорит :)
KDenis (2003-01-23 17:21:00) [10]А зачем количество дней в месяце? Может
GetDateподойдет???
Reindeer Moss Eater (2003-01-23 17:16:00) [11]Johnmen ©
курсив у меня - это фрагмент.
В нем описано правило поиска невисокосных лет всех среди кратных четырем.
Johnmen (2003-01-23 17:10:00) [12]>Reindeer Moss Eater (23.01.03 17:01)
Наврал опять...
Високосные - делящиеся на 4 без ост-ка, за исключением делящихся на 100, за исключением делящихся на 400
dolmat (2003-01-23 17:04:00) [13]еще можно попробовать такое
if mons+1>12 then year1:=year+1 else year1:=year;
n_day:=strtodate("01."+inttostr(mons)+"."+inttostr(year))-strtodate("01."+inttostr(mons+1)+"."+inttostr(year1))-1;
Reindeer Moss Eater (2003-01-23 17:01:00) [14]Виноват, наврал. Про произвольный выбор.
к високосным относятся только те вековые годы, число столетий которых делится на 4 без остатка. Такими годами, являются: 1600, 2000, 2400, 2800 и т. д. Годы же 1700, 1800, 1900, 2100 и т. д. будут простыми.
Anatoly Podgoretsky (2003-01-23 16:54:00) [15]И скорость вращения изменяется, падает
Reindeer Moss Eater (2003-01-23 16:50:00) [16]Т.е. заявку надо писать что ли в комитет по распределению дат? Наверняка какая то система есть.
Или планеты того - с орбиты сползают?
1. Зачем?
2. Да наверняка есть
3. Постепенно сползают
REA (2003-01-23 16:29:00) [17]>Эти 4 года определяются произвольным образом.
Т.е. заявку надо писать что ли в комитет по распределению дат? Наверняка какая то система есть. Или планеты того - с орбиты сползают?
KDenis (2003-01-23 16:16:00) [18]Самый простой способ: научится считать до 31
Reindeer Moss Eater (2003-01-23 16:07:00) [19]В Григорианском календаре в течение 400 лет должно быть не 100 високосных лет, а на 4 меньше. Эти 4 года определяются произвольным образом.
REA (2003-01-23 16:03:00) [20]Ну если брать планетарный масштаб, то там каждый сотый или тысячный год не високосный. Или что-то типа того. Вобщем на 4 не всегда можно делить.