起步软件技术论坛-X3

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

[问题]关于日期型的天数加减运算及比较!**

[复制链接]
发表于 2007-8-6 10:42:43 | 显示全部楼层 |阅读模式
我有2个date型数据,N1,N2;
我想让N1递增X天,然后和N2进行比较是否相等。
X可以是30以下,也可以是30以上。
好像30以下直接加减可以,过30就不对了。
请指教!
回复

使用道具 举报

发表于 2007-8-6 11:00:03 | 显示全部楼层
不会吧
1、是怎么增加X天的,贴出来看看
2、你是怎么加减的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-6 11:08:48 | 显示全部楼层
是不对啊。。
我是想做个提醒功能,根据当前服务器时间和业务截至时间比较,提前X天提醒。
请问怎么实现?
直接相加是不行,如果按月判断还好做,但现在要求是按天,这天数是可以设置的任意数值的变量
回复 支持 反对

使用道具 举报

发表于 2007-8-6 11:20:02 | 显示全部楼层
最初由 atiger 发布
[B]不会吧
1、是怎么增加X天的,贴出来看看
2、你是怎么加减的? [/B]


请回答,把你做的都贴出来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-6 11:53:55 | 显示全部楼层
var N1 : string;
      N2 : double;
        x : integer;
N1 := System.SysUtils.formatdatetime('yymmdd',SysService.time + x);//当前服务器时间+x天;
N2 := date;//业务截至日期;
if   N1 =  SysUtils.datetostr(N2)  then
begin
   //do something;
end;
回复 支持 反对

使用道具 举报

发表于 2007-8-6 12:05:45 | 显示全部楼层
1、为啥N1和N2不直接比较呢?
2、你把关键的省去了,把do something贴出来,你不是说直接加减不行吗?把代码都贴出来,
还有“不行”的具体指啥?如果是报错,把原始的错误信息贴出来;如果是结果不对,那你跟踪了吗?走的路线是根据你的要求在走吗?如果没有那就是你代码逻辑出问题了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-6 12:15:33 | 显示全部楼层
汗先结贴吧,我整理下思路再开新贴吧,我想表达的意思自己都搞糊涂了。
回复 支持 反对

使用道具 举报

发表于 2007-8-6 14:02:53 | 显示全部楼层
汗。。。  日期型加减用自带的函数做比较好
NameSpace: Business.System
--------------------------------------------------------------------------------
DateUtils = class(System.Object)

  static function IncDay(AValue: Double; ANumberOfDays: Longint): Double;
  static function IncHour(AValue: Double; ANumberOfHours: Int64): Double;
  static function IncMilliSecond(AValue: Double; ANumberOfMilliSeconds: Int64
回复 支持 反对

使用道具 举报

发表于 2007-8-6 14:03:32 | 显示全部楼层
我也出汗,不知道是因为夏天的原因,呵呵,好吧
我多说几句
1、日期可以直接比大小,不需要转换成字符串
2、日期类型可以直接进行加减的,整数就是大于的天数,负数就是小于的天数
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-13 10:15 , Processed in 0.039144 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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