如何计算2个日期之间的差值,要求不按自然月计算,每个月按30天,就跟银行似的。比如:1月20日和4月20日之间,按照自然月是差91天,如果每月按30天计算,是差90天。

解决方案 »

  1.   

    你用DecodeDate分解日期,然后月*30+日
    DecodeDate  将TDateTime型态的日期变数,转为Word型态.
    --------------------------------------------------------
    范例
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Present: TDateTime;
      Year, Month, Day, Hour, Min, Sec, MSec: Word;
     begin
      Present:= Now;
      DecodeDate(Present, Year, Month, Day);
      Label1.Caption := 'Today is Day ' + IntToStr(Day) + ' of Month '
        + IntToStr(Month) + ' of Year ' + IntToStr(Year);
      DecodeTime(Present, Hour, Min, Sec, MSec);
      Label2.Caption := 'The time is Minute ' + IntToStr(Min) + ' of Hour '
        + IntToStr(Hour);
    end;
      

  2.   

    请查看dateutils单元里面有你想要的全部东西!
      

  3.   

    var aDateFrom, aDateTo: TDatetime;
    begin
     (
      (YearsOf(aDateTo) - YearsOf(aDateFrom)) * 12 +
      (monthsOf(aDateTo) - MonthsOf(aDateFrom)) 
     ) * 30
     + DaysOf((aDateTo) - DaysOf(aDateFrom)) 不过,要检查下正负