Вниз
Скачать: CL | DM;

Количество дней в месяце   Найти похожие ветки 

← →
KSION ©   (2003-01-23 12:14) [0]

Как узнать количество дней в месяце


← →
MBo ©   (2003-01-23 12:24) [1]

function DaysInMonth




← →
Separator ©   (2003-01-23 12:34) [2]

function DaysPerMonth(AYear, AMonth: Integer): Integer;


← →
KSION ©   (2003-01-23 13:21) [3]

в какой версии Делфи? в 6-ке нет, такой функции (DaysPerMonth), или какой модуль использовать?


← →
Johnmen ©   (2003-01-23 13:39) [4]

Просто удивительная беспомощность !
MBo © тебе сказал, а ты даже не можешь нажать F1...


← →
Anatoly Podgoretsky ©   (2003-01-23 13:42) [5]

Переинсталлируй Дельфи


← →
Separator ©   (2003-01-23 14:02) [6]

Unit DateUtils


← →
Slava ©   (2003-01-23 14:20) [7]

Даже, если нет такой функции, то просто берешь первое число следующего месяца и отнимаешь один день.


← →
mike-d ©   (2003-01-23 15:18) [8]

uses SysUtils;

...

// Y - год
// M - номер месяца (1..12)
// DayNum - кол-во дней

DayNum := MonthDays[IsLeapYear(Y), M];


← →
cult ©   (2003-01-23 15:29) [9]

Ну блин Ваще, функция пишется самостоятельно за 5 минут и содержать будет строк 10, даже если бы в дельфях встроенной не было. Смешно и грустно...

типа:

function Days(Year,Month:integer):integer;
begin
Result:=-1;
case month of
1,3,5,7,8,10,12:Result:=31;
4,6,9,11:Result:=30;
2:begin
Result:=28;
if (Year-2002) div 4 = 0 then Result:=Result+1;
end;
end;
end;


← →
MBo ©   (2003-01-23 15:31) [10]

все хорошо, но это:
if (Year-2002) div 4 = 0 then Result:=Result+1;
Ну блин Ваще


← →
Anatoly Podgoretsky ©   (2003-01-23 15:36) [11]

Это выходит, что в феврале 2002 года 29 дней, в могилу.


← →
cult ©   (2003-01-23 15:38) [12]

mod, блин, а не div!
Ну я Ваще :)))

А насчет 2002... а он не високосный был? ну тогда 2000 :)


← →
REA ©   (2003-01-23 16:03) [13]

Ну если брать планетарный масштаб, то там каждый сотый или тысячный год не високосный. Или что-то типа того. Вобщем на 4 не всегда можно делить.


← →
Reindeer Moss Eater   (2003-01-23 16:07) [14]

В Григорианском календаре в течение 400 лет должно быть не 100 високосных лет, а на 4 меньше. Эти 4 года определяются произвольным образом.


← →
KDenis ©   (2003-01-23 16:16) [15]

Самый простой способ: научится считать до 31


← →
REA ©   (2003-01-23 16:29) [16]

>Эти 4 года определяются произвольным образом.

Т.е. заявку надо писать что ли в комитет по распределению дат? Наверняка какая то система есть. Или планеты того - с орбиты сползают?


← →
Reindeer Moss Eater   (2003-01-23 16:50) [17]

Т.е. заявку надо писать что ли в комитет по распределению дат? Наверняка какая то система есть.
Или планеты того - с орбиты сползают?

1. Зачем?
2. Да наверняка есть
3. Постепенно сползают


← →
Anatoly Podgoretsky ©   (2003-01-23 16:54) [18]

И скорость вращения изменяется, падает


← →
Reindeer Moss Eater   (2003-01-23 17:01) [19]

Виноват, наврал. Про произвольный выбор.

к високосным относятся только те вековые годы, число столетий которых делится на 4 без остатка. Такими годами, являются: 1600, 2000, 2400, 2800 и т. д. Годы же 1700, 1800, 1900, 2100 и т. д. будут простыми.


← →
dolmat ©   (2003-01-23 17:04) [20]

еще можно попробовать такое
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;


← →
Johnmen ©   (2003-01-23 17:10) [21]

>Reindeer Moss Eater (23.01.03 17:01)

Наврал опять...

Високосные - делящиеся на 4 без ост-ка, за исключением делящихся на 100, за исключением делящихся на 400


← →
Reindeer Moss Eater   (2003-01-23 17:16) [22]

Johnmen ©
курсив у меня - это фрагмент.
В нем описано правило поиска невисокосных лет всех среди кратных четырем.


← →
KDenis ©   (2003-01-23 17:21) [23]

А зачем количество дней в месяце? Может GetDate подойдет???


← →
Романов Р.В. ©   (2003-01-23 17:41) [24]


> Високосные - делящиеся на 4 без ост-ка, за исключением делящихся
> на 100, за исключением делящихся на 400


Да что вы беспокоитесь. Через 6 лет взорвется Солнце, а тех кто выжевет через 3 года добъет метеорит :)


← →
dtrn   (2003-01-27 16:15) [25]

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;


← →
Anatoly Podgoretsky ©   (2003-01-27 16:23) [26]

Reindeer Moss Eater (23.01.03 17:01)
Что скажешь про 4000 год?


← →
Reindeer Moss Eater   (2003-01-27 16:57) [27]

Скажу, что Григорианский календарь к этому времени выйдет из употребления


← →
Sha ©   (2003-01-28 11:49) [28]

LeapYear:= (Year and 3=0)
and ((Year mod 100<>0)
or (Year and 15=0)
and (Year mod 4000<>0));


← →
Anatoly Podgoretsky ©   (2003-01-28 11:58) [29]

Вот жто загадочно (Year and 15=0)


← →
Chubais ©   (2003-01-28 12:32) [30]

Sha © (28.01.03 11:49)
поразительно!


← →
Sha ©   (2003-01-28 12:34) [31]

2 Anatoly Podgoretsky © (28.01.03 11:58)
Делимость на 16 проверить легче, чем делимость на 400.


← →
Sha ©   (2003-01-28 12:58) [32]

2 Chubais © (28.01.03 12:32)
Поразительно хорошо или поразительно плохо?
Если первое, то спасибо.
Если второе, то советую сначала все как следует проверить.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.012 c
1-15577
Sectey
2003-01-28 17:03
2003.02.06
Не модальная форма со свойствами модальной


6-15796
Nord-Ost
2002-12-15 15:41
2003.02.06
Уважаемые мастера, подскажите, пожалуйста...


1-15548
arsen
2003-01-28 14:39
2003.02.06
Печать DBGrid


14-15903
Z@PODLO
2003-01-20 19:37
2003.02.06
Работа с текстом в Delphi 6


1-15623
farhad
2003-01-29 12:38
2003.02.06
Простой вопрос...




   Наверх