如:开始时2005-05-05 5:00:00,结束时2005-06-02 2:00:00
我要通过知道开始时与结束时的2:00:00,但结束时的日期并不知道,我要通过时间差来加上开始时间得出结束时间的年月日,
当(5>2)时,我怎么去计算它的时间差呢?这个5点与2点并不固定.如果是12点与2点呢?或13点与2点呢?头痛算得.....帮看看.如何用程序去得到这个时间差这种时间差.谢谢.

解决方案 »

  1.   

    给你介绍点常识吧
    VB中Date类型其实是Double型的,整数部分表示日期,是从1900年1月1日的天数,小数部分表示0点0分0秒到23点59分58秒的时间,
    可以很方便的与字符型日期时间直接赋值相互组转换,也可以当作数值直接计算,比如相减得到天数DateDiff函数得到,两个时刻的间隔,第一个参数指定间隔单位
    DateSerial函数用年月日构造一个日期,如果超出范围,自动向前后向后相应的天数
      

  2.   

    format$(DateAdd("s,时间间隔(假如秒作单位)",开始时间),"YYYY-MM-DD")
      

  3.   

    时间差:datediff("参数",日期一,日期二)
    计算日期: DateAdd("参数", 相隔时长, 开始时间)
    其中参数的设定值如下:
    设置 描述 
    yyyy 年 
    q 季 
    m 月 
    y 一年的日数 
    d 日 
    w 一周的日数 
    ww 周 
    h 时 
    n 分钟 
    s 秒 
      

  4.   

    if DateDiff("h",date1,date2) <=0 then
       date2 = date1 + 1
    end if
      

  5.   

    是不是已知初始时间和时间间隔,要得出最终年月日?
    format$(DateAdd("s",时间间隔(假如秒作单位),开始时间),"YYYY-MM-DD")
      

  6.   

    可关键不是单纯的加减.
    怎么说能更清楚呢?开始时间:2005-05-05 5:00:00
    结束时间:2005-06-02 2:00:00
    2005-05-05 5:00:00加上21个钟以后就是2005-06-02 2:00:00但是现在是我只知道2005-05-05 5:00:00和2:00:00,那我现在要得出21个钟这个数才会知道是2005-06-02 
    我是这样判断的.if(开始时间的小时=结束时间的小时) then
           结束时间 = DateAdd("h", 24, 开始时间)
    ElseIf (开始时间的小时< 结束时间的小时) Then
           结束时间 = DateAdd("h", 开始时间的小时 - 结束时间的小时, 开始时间)
    ElseIf (开始时间的小时> 结束时间的小时) Then
           这里就卡住了,很难判断???      
    End If(当然小时只能限止在24小时以内)
    现在我表达的明白点了嘛?
      

  7.   

    if(开始时间的小时=结束时间的小时) then
           结束时间 = DateAdd("h", 24, 开始时间)
    ElseIf (开始时间的小时< 结束时间的小时) Then
           结束时间 = DateAdd("h", 结束时间的小时 - 开始时间的小时, 开始时间)
    ElseIf (开始时间的小时> 结束时间的小时) Then
           
           结束时间 = DateAdd("h", 结束时间的小时 - 开始时间的小时 + 24 , 开始时间)
    End If
      

  8.   

    2005-05-05 5:00:00加上21个钟怎么会是2005-06-02 2:00:00,应该是2005-05-06 2:00:00啊,晕
    呵呵,不好意思,2005-05-06 2:00:00这只是随便举个例,忘记改过来了to:winehero(编程人生)
    ElseIf (开始时间的小时> 结束时间的小时) Then
           '这里是这样的?..........谢谢,糊了.原来这样的....喔(我笨死了,呵呵)..........
           结束时间 = DateAdd("h", 结束时间的小时 - 开始时间的小时 + 24 , 开始时间)
    End If