问个算法设置软件的使用天数
2012-07-28 17:32:19
2011-07-28 17:32:19
如何实现
2012-07-28 17:32:19-2011-07-28 17:32:19=1  365天呀意思
2012-2011=1  而这个1就是365天

解决方案 »

  1.   


    思路结构如下:
    if ((2012-07-27 17:32:19)-(2011-07-28 17:32:19))=1 then
       就退出系统
    else
       继续运行程序
      

  2.   

    直接用TDateTime类型相减就行了
      

  3.   

    用daysbetween函数检测一下两个时间是不是相差365,或是用incyear函数将开始使用的时间加指定年数,然后判断是不是今天(可以用istoday函数判断)。无非就是数字上的计算。
    给用户一个序列号,其中的内容包括用户的注册信息,以及过期的确切时间等。
      

  4.   

    DateUnits里有日期计算的函数,DaysBetween、YeasBetween不知这些函数是不是楼主要的。
      

  5.   

    现在问题如下:
    sss2:=inttostr(Abs(trunc(2011-08-14)-trunc(2011-08-01)));    //将-13转换成13
    能计算出天来,
    sss2:=inttostr(Abs(trunc(XXX)-trunc(2011-08-01)));  
    XXX的部分   这个地方我想用现的在时间并格式化如下:
    FormatDateTime('yyyy-mm-dd', Now())
    修改如下:
    inttostr(Abs(trunc(FormatDateTime('yyyy-mm-dd', Now()))-trunc(2011-08-01))); 
    [错误] Unit2.pas(111): Incompatible types
      

  6.   

    不用这么麻烦,就象八楼说的那个单元下面有很多函数,你可以仔细看看,我和他给你说了个函数daysbetween,可以试试。
      

  7.   

    是时间类型的,Delphi提供了一些计算时间的函数如:daysbetween,直接用就是了。
      

  8.   

    当前问题总结如下:
    [当前年月日]-[2011-08-01]=
    [2009-01-01]-[2008-01-01]=
    var
      j:Real;
    begin
      j:= StrToDate('2009-01-01') - StrToDate('2008-01-01');
      ShowMessage('[2009-01-01]-[2008-01-01]='+FloatToStr(j)+'   ');  //返回的结果是366天
      

  9.   

    。有点小无语,incday第二个参数指定天数。
      

  10.   

    时间想减直接用TDATETIME类型可以实现,至于你软件使用限制天数的方法18楼的是个不错的建议,但是个人认为还不完善,