不知道有没有现成函数。没有的话如何操作简便啊2个日期之间的天数差。按照月份30天计算类似excel
days360希望各位帮下忙
days360希望各位帮下忙
解决方案 »
- 急救delphi调用C动态库传结构体报地址错误
- delphi中怎么通过edit修改sql表中的值?在线等
- 一个有关对象引用的问题
- 高分请教:想把Word里的内容保存在数据库中,然后通过程序把它显示出来?有没有好的办法。在线待恩公!:(
- 我用ADO连接access,怎样在用installshield制作安装程序时:
- 有关USB驱动程序的开发给点意见好吗?
- 程序如何实现将最小化按钮变灰掉,及该程序在任务栏的弹出式菜单中最小化选项一起变灰?
- 大虾告诉我,delphi下的ClientSocket,ServerSocket和TcpClient,TcpServer有什么区别?
- 关于重装系统后Delphi6中报表的一个问题
- 抓取屏幕上一点的颜色应该怎么做?
- TDataSetProvider.ApplyUpdates有时保存不了数据
- 求简单的人脸识别程序:仅要求在一幅图中找到人头的大致位置即可,可以用现金购买.
DateUtils;function DaysBetween(const ANow, AThen: TDateTime): Integer;
月按30天算?=(天数 div 30) 月另 (天数 mod 30) 日
我试过跟days360计算的结果不同
d1, d2: TDate;
begin
d1 := StrToDate('2010-1-1');
d2 := StrToDate('2010-12-31'); ShowMessage(FloatToStr(d2 - d1));//结果是364天,如果算上'2010-12-31',那么就是365天。
end;
function GetDateDiff(FormerDate,LaterDate:TDateTime):Integer
var Yearlater,Yearformer,Monthlater,Monthformer,Daylater,Dayformer:word;
begin
DecodeDate(LaterDate,Yearlate,Monthlater,Daylater);
DecodeDate(FormerDate,Yearformer,Monthformer,Dayformer);
result:= (Yearlater-Yearformer)*360+(Monthlater-Monthformer)*30+(Daylater- Dayformer);
end;未测试
解决了,分享一下吧
function days30(a,b:TDateTime):Integer;
var
datea,dateb:string;
nian,yue,ri:integer;
begin
datea:=DateTimeToStr(a);
dateb:=DateTimeToStr(b);
nian:=strtoint(Copy(dateb,0,4))-strtoint(Copy(datea,0,4));
yue:=strtoint(Copy(dateb,6,2))-strtoint(Copy(datea,6,2));
ri:=strtoint(Copy(dateb,9,2))-strtoint(Copy(datea,9,2));
nian:=nian*12*30;
yue:=yue*30;
result:=nian+yue+ri;
end;