请问怎样判别某年某月有多少天?(30分)

  • 主题发起人 主题发起人 wuyuhuai
  • 开始时间 开始时间
W

wuyuhuai

Unregistered / Unconfirmed
GUEST, unregistred user!
给出哪年哪月
有没有函数可以得出这个月的天数?
难道要写程序判别?
这样的话就要处理润年的问题
闰年的规律是什么的?
能被四整除就润?
 
我是通过以下方法取得当月最大天数的
取得下个月1日的日期,再减1天,得到本月最后一天的日期,再取得天数
 
任意月份天数
procedure TForm1.Button1Click(Sender: TObject);
var
MyDate : TDateTime;
tmpStr : String;
tmpInt : Integer;
begin
MyDate := Date() + 365 - (30*5);
tmpStr := FormatDateTime('mmmm yyyy',MyDate);
tmpInt := DaysInMonth(MyDate);
ShowMessage(tmpStr + '有 ' + IntToStr(tmpInt) + '天');
end;

function TForm1.DaysInMonth(ADate:TDateTime):Integer;
var
MyMonth,
MyYear,
MyDay : Word;
MyDayTable : TDayTable;
tmpBool : Boolean;
begin
DecodeDate(ADate, MyYear, MyMonth, MyDay);
tmpBool := IsLeapYear(MyYear);
MyDayTable := MonthDays[tmpBool];
Result := MyDayTable[MyMonth];
end;
 
YB_unique,是个好人![:D]
 
不用那么麻烦,所以东西Delphi都早已为你准备好了。
DaysInMonth //返回某月的天数
IsInLeapYear //指定的日期所在的年份是否闰年
一大堆好用的函数在“date/time routines”里,自己去找吧
 
呵呵,好像是delphi6才支持吧?
如果你没有d6,呵呵
升级吧
 
呵呵, 不好意思,确实是D6中的函数
如果你用的是D5,也可以把D6的DateUtils单元拷过去用的
这样的话D6和D5就一样了。[:)]
 
多谢大家
我用的是DELPHI5
我通过笨办法来的
就是写程序
1,3,5,7,8,10,12 为31
4,6,9,11为30
2月取年mod 4 判断结果
为0,是29
否则28
 
后退
顶部