首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Delphi计算月历天数

用Delphi计算月历天数
EN

Stack Overflow用户
提问于 2020-04-01 02:28:20
回答 2查看 732关注 0票数 0

我在表格上使用了两个月的日历。我为每一天选择一个日期,并计算这两天之间的天数。我唯一有的代码是

代码语言:javascript
复制
procedure TForm1.Button1Click(Sender: TObject);
Var
 N, m: TDate;
 d: Real;
 l,k:String;
begin
 N := (MonthCalendar1.Date);
 m := MonthCalendar2.Date;
 L := formatdatetime('dd', N);
 K:=formatdatetime('dd',M);
 d := StrToFloat(L)-StrToFloat(K);
 ShowMessage(FloatToStr(d));

end; 
EN

Stack Overflow用户

发布于 2020-04-01 02:55:46

您不需要MonthCalendar就可以做到这一点。TDateTime到小数点的RHS的部分实际上是一个“天数”,所以如果将其中一个与另一个相减,就会得到“天数之间”。对两者应用Trunc以丢弃时间部分。有关TDateTime的定义,请参阅http://docwiki.embarcadero.com/Libraries/Rio/en/System.TDateTime

因此,例如,给定

代码语言:javascript
复制
var
  D1,
  D2 : TDateTime;
  DaysBetween : Integer;

D1和D2是两个TDateTimes (如果您愿意,可以使用TMonthCalendar输入),然后

代码语言:javascript
复制
  DaysBetween := Trunc(D2) - Trunc(D1);

对内置Trunc函数的调用将丢弃TDateTime值的小数时间部分(即小数点右侧的部分),以便将某一天的23:59和下一天的00:01计算为相隔一天。这可能是您想要的结果,也可能不是,这取决于您的应用程序,这就是为什么我建议您自己计算它,而不是使用内置的DaysBetween函数。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60957445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档