起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 168|回复: 8

【结贴】关于DaysBetween()的问题**

[复制链接]
发表于 2009-7-10 15:48:35 | 显示全部楼层 |阅读模式
请问DaysBetween(A,B)只计算两个日期差,但是不管A,B的时间谁在前谁在后是吧?我要实现是的如果A为:2009-06-05,B时间为:2009-06-09,得出的结果为4,但是如果A为:2009-06-05,B时间为:2009-06-02,得出的结果就是-3,怎么做呢?
回复

使用道具 举报

发表于 2009-7-10 15:55:03 | 显示全部楼层
你可以再加一个Abs
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-10 15:57:12 | 显示全部楼层
abs是取绝对值啦,我要得到的结果为:我要实现是的如果A为:2009-06-05,B时间为:2009-06-09,得出的结果为4,但是如果A为:2009-06-05,B时间为:2009-06-02,得出的结果就是-3
回复 支持 反对

使用道具 举报

发表于 2009-7-10 16:04:46 | 显示全部楼层
abs(DaysBetween(A,B))
你看人家定义没说肯定返回时正数。
--------------------------------------------
Returns the number of whole days between two specified TDateTime values.

Unit

DateUtils

Category

date/time routines

function DaysBetween(const ANow, AThen: TDateTime): Integer;

Description

Call DaysBetween to obtain the difference, in days, between two TDateTime values.

DaysBetween counts only whole days that have elapsed. Thus, DaysBetween reports the difference between Dec 31, 1999 11:59 PM and Jan 1, 2000 11:58 PM as 0 because the difference is one minute short of an entire day.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-10 16:09:59 | 显示全部楼层
但是我现在abs(DaysBetween(2009-07-01,2009-07-10))的到得结果为9,
而DaysBetween(2009-07-01,2009-07-10)得到的结果也是9,我要的到得结果为-9!!!
回复 支持 反对

使用道具 举报

发表于 2009-7-10 16:17:13 | 显示全部楼层
判断下时间大小然后
写  0-DaysBetween(2009-07-01,2009-07-10)
函数具体是什么效果,楼主查查delphi帮助
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-13 09:55:51 | 显示全部楼层
结贴吧
回复 支持 反对

使用道具 举报

发表于 2009-7-13 10:03:20 | 显示全部楼层
如果计算两个日期之间的天数差可以直接相减,这样会产生负数。
回复 支持 反对

使用道具 举报

发表于 2009-7-14 13:43:31 | 显示全部楼层
Integer(A)- Integer(B)或者Trunc(A)- Trunc(B) 都可以得到你想要的值。实践证明X3平台的DaysBetween()有时候并不可靠。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 23:56 , Processed in 0.037698 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表