导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/7/22 17:15:43
标题:
加入我的收藏
楼主:
BORLAND的答案我不满意: 根据两个日期求天数的算法 很麻烦,以下是个人看法,如有不对之处 或有更好的算法,欢迎修正并在论坛上贴 出你的观点,供大家讨论 BORLAND的答案我不满意: Uses DateUtils; var t1:TDateTime; begin t1:=DaysBetween(DateTimePicker1.Date,DateTimePicker2.Date); edit2.Text:=datetostr(t1); end; 程序运行结果:1900-3-8 这中结果你能满意吗? 所以决定自己研究
----------------------------------------------
作者:
2003/7/22 19:52:47
1楼:
你可以尝试使用别的函数: function CompareDate(const A, B: TDateTime): TValueRelationship; function CompareDateTime(const A, B: TDateTime): TValueRelationship;
----------------------------------------------
=^@^=
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/7/23 7:42:40
2楼:
要求的他们之间的天数TValueRelationship:似乎很晕啊, 依然谢谢你的提示!
----------------------------------------------
作者:
resun (resun)
★☆☆☆☆
-
盒子活跃会员
2003/7/23 9:12:53
3楼:
这么简单的问题........................ 试试这个 procedure TForm1.Button1Click(Sender: TObject); var t1,t2:Tdate; t:integer; begin t1:=now; t2:=datetimepicker1.Date; t:=round(t1-t2); showmessage(inttostr(t)); end;
----------------------------------------------
-
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/7/23 10:13:14
4楼:
还是不理想啊! t1:=StrToDate('2003-07-22'); t2:=StrToDate('2001-12-15'); t3:=Trunc(t1-t2); s:=floatToStr(t3); MessageBox(0,PChar(s),Pchar('相距'),mb_ok); 计算结果是 584 t1:=DaysBetween(DateTimePicker1.Date,DateTimePicker2.Date); edit2.Text:=Inttostr(t1); 计算结果是583 以下是判断一个年是否是闰年的算法,对吗? 如果对2002是闰年吗?如果是我认为以上求出来是585天才对! function isleap(yy:longint):boolean; file://判断润年 var leap:longint; begin if yy mod 4=0 then leap:=0 else if yy mod 100 <>0 then leap:=1 else if yy mod 400 <> 0 then leap:=0 else leap:=1; if leap=1 then Result:=true else Result:=false; end;
----------------------------------------------
作者:
2003/7/23 19:08:26
5楼:
sorry,上个回复我没看清你的问题。 resun 的方法是正确的。 你用resun 的方法算一下2000-02-01到2000-03-01就知道了。 ps.2002不是闰年,2000年是。
----------------------------------------------
=^@^=
作者:
bios (阿贡)
★☆☆☆☆
-
盒子中级会员
2003/7/23 20:53:12
6楼:
谢谢大家的帮助 OK
----------------------------------------------