问个超简单的问题~日期的计算问题~ ( 积分: 200 )

  • 主题发起人 主题发起人 菜鸟黄
  • 开始时间 开始时间

菜鸟黄

Unregistered / Unconfirmed
GUEST, unregistred user!
问个超简单的问题~日期的计算问题~
下面的代码是要实现计算当前日期加x个星期后的日期是多少.不过做得不完善,超过两个月就实现不了这个功能了,请高手们给你指点,最好有代码给我看看.

var
Form1: TForm1;
O,P:integer;
Y,M,D,D1,A,B:integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
O:=strtoint(edit3.Text);
P:=strtoint(edit4.Text);
Y:=YearOf(Date);
M:=MonthOf(Date);
D:=DayOf(Date);
D1:=DaysInAMonth(Y,M);

if (D+(7*P))<=D1 then
DateTimePicker1.Date := strtodate(inttostr(Y)+'-'+inttostr(M)+'-'+inttostr(D+(7*P)));
if (D+(7*P))>D1 then
DateTimePicker1.Date := strtodate(inttostr(Y)+'-'+inttostr(M+1)+'-'+inttostr(D+(7*P)-D1));
end;
 
汗,有必要那么复杂吗?其实就是
7*你输入的几周
比如,当前日期加3周,就直接写DateTime + 7 * 3即可。不需要你那么复杂的算的。Delphi的时间格式非常简单,就是一Double类型,整数表示1900-1-1日开始算的天数,小数表示毫秒。你只要把整数加7*x就可以了,然后取出来就是正确的日期。不需要算什么月份、天数、这个月的总天数等!直接相加就OK了。
 
如果仅仅是当前日期加x个星期后的日期,这样不就完成了吗?
datetimePicker1.date := date + 7*p
 
好的~我试试~
 
呵呵~果然好简单~谢谢啦~
 
后退
顶部