在Delphi中日期型为Double类型,整数部分保存的年月日,如何从他的整数部分得到包含的年、月、日?又如何从他的小数部分得到小时、分钟和秒?注意,不允许使用YearOf,Monthof()类的函数!也不允许使用isc_decode_timestamp之类的方法,我需要计算的过程。多谢!

解决方案 »

  1.   

    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.   

    DecodeDate(当前的时间, Year, Month, Day);
    这样的化 年月日就都有了
      

  3.   

    formatdatetime('yyyy',now);//年
    formatdatetime('mm',now);//月
    formatdatetime('dd',now);//日
    formatdatetime('hh',now);//时
    //
    formatdatetime('ss',now);//秒
      

  4.   

    其实double要转化为日期型号不难,如下:
    formatdatetime('YYYYMMDD',123.234);
    产生结果为19000502----1900年05月02日formatdatetime('YYYYMD',123.234);
    产生结果为190052----1900年5月2日也可以向upingking那样写
      

  5.   

    同意hiflower(花)的方法,楼主,
    就算日期自己去算,
    也有可能是不准的,
    因为类型为DOUBLE型。