转自http://www.cnblogs.com/edisonfeng/archive/2012/02/24/2366744.html 

   年纪大了真的记忆力越来越差,这段时间现在开始摸 XE2了,昨天在项目组中看到编译顺序,今天再想看看在那里就是找不到了!看来想到的东西还是要记录下来!

  TDateTime 是 Delphi里常用的类,负责时间的存储,他与C#里面的是有区别的(用了一段时间的C#,回国头来,Delphi有点不习惯了,呵呵),基础类型是Double,其取值范围是 从 12/30/1899开始,比如6:00 AM 12/29/1899就是 -1.25  整数部分就是天,小数部分表示一天的几分之。

1秒钟就是 1/(60*60*24)

1分钟就是 1/(60*24)

1小时就是 1/24

    真如大家所想到的,一分钟,一小时,一秒 已经是delphi提供的Const了。

常用的函数包括:
now(),date(),time()
year(),
DateTimetoStr(),FormatDateTime()
replaceDate(),replaceTime()
isLeapYear(),
EncodeDateTime(),EncodeTime(),EncodeDate()
strToDateTime()
其实知道TDateTime本质,问题就很好解决了,用以上函数仅仅为了方便。
比如:
求出前一天
    1. now()-1;
    2. IncDay(now(),-1);
    3. YesterDay(now());
如果是两个时间的组合比如用两个DateTimePick,一个的类型是时间,一个类型是日期。那么如何合成一个有效的时间呢?
    1. replaceDate(DateTimePick1.dateTime,DateTimePick2.dateTime));
    2. EncodeDateTime();
    3. Int(DateTimePick1.dateTime)+(DateTimePick2.dateTime-trunc(DateTimePick2.dateTime));
    4. Int(DateTimePick1.dateTime)+Frac(DateTimePick2.dateTime);

求出前30分钟

    1. now()-30*(1/60/24)
    2. IncMinute(now(),-30)

转自http://www.cnblogs.com/edisonfeng/archive/2012/02/24/2366744.html 

   年纪大了真的记忆力越来越差,这段时间现在开始摸 XE2了,昨天在项目组中看到编译顺序,今天再想看看在那里就是找不到了!看来想到的东西还是要记录下来!

  TDateTime 是 Delphi里常用的类,负责时间的存储,他与C#里面的是有区别的(用了一段时间的C#,回国头来,Delphi有点不习惯了,呵呵),基础类型是Double,其取值范围是 从 12/30/1899开始,比如6:00 AM 12/29/1899就是 -1.25  整数部分就是天,小数部分表示一天的几分之。

1秒钟就是 1/(60*60*24)

1分钟就是 1/(60*24)

1小时就是 1/24

    真如大家所想到的,一分钟,一小时,一秒 已经是delphi提供的Const了。

常用的函数包括:
now(),date(),time()
year(),
DateTimetoStr(),FormatDateTime()
replaceDate(),replaceTime()
isLeapYear(),
EncodeDateTime(),EncodeTime(),EncodeDate()
strToDateTime()
其实知道TDateTime本质,问题就很好解决了,用以上函数仅仅为了方便。
比如:
求出前一天
    1. now()-1;
    2. IncDay(now(),-1);
    3. YesterDay(now());
如果是两个时间的组合比如用两个DateTimePick,一个的类型是时间,一个类型是日期。那么如何合成一个有效的时间呢?
    1. replaceDate(DateTimePick1.dateTime,DateTimePick2.dateTime));
    2. EncodeDateTime();
    3. Int(DateTimePick1.dateTime)+(DateTimePick2.dateTime-trunc(DateTimePick2.dateTime));
    4. Int(DateTimePick1.dateTime)+Frac(DateTimePick2.dateTime);

求出前30分钟

    1. now()-30*(1/60/24)
    2. IncMinute(now(),-30)

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-03
  • 2021-10-23
  • 2021-11-17
  • 2021-05-21
  • 2022-12-23
猜你喜欢
  • 2021-12-02
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案