DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: liangjiping168
今日帖子: 16
在线用户: 11
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2003/7/22 17:15:43
标题:
BORLAND的答案我不满意: 浏览:2336
加入我的收藏
楼主: BORLAND的答案我不满意:

根据两个日期求天数的算法

很麻烦,以下是个人看法,如有不对之处
或有更好的算法,欢迎修正并在论坛上贴
出你的观点,供大家讨论

BORLAND的答案我不满意:
     Uses
     
     DateUtils;
     var
     t1:TDateTime;
     begin
     t1:=DaysBetween(DateTimePicker1.Date,DateTimePicker2.Date);
     edit2.Text:=datetostr(t1);
     end;
     
     程序运行结果:1900-3-8 这中结果你能满意吗?

所以决定自己研究

----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
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;

----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
作者:
男 zsredmoon (=^@^=) ★☆☆☆☆ -
盒子活跃会员
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
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行66.40625毫秒 RSS