CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

请问在vb中如何准确的计算前后两个时间差?

楼主miame()2002-03-15 13:23:27 在 VB / 基础类 提问

dim   startTime   as   Date  
  dim   endTime   as   Date  
   
  strartTime=CDate("2000-02-21   19:12:13")  
  endTime=now;  
   
  现在我想得到endtime   -   starttime的值,并且最好是yyyy-yy-yy   hh:mm:ss格式的  
  请问如何得到?谢谢  
   
  问题点数:50、回复次数:9Top

1 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-03-15 13:27:25 得分 25

 
  DateDiff   函数  
               
   
  返回   Variant   (Long)   的值,表示两个指定日期间的时间间隔数目。  
   
  语法  
   
  DateDiff(interval,   date1,   date2[,   firstdayofweek[,   firstweekofyear]])  
   
  DateDiff   函数语法中有下列命名参数:  
   
  部分   描述    
  interval   必要。字符串表达式,表示用来计算date1   和   date2   的时间差的时间间隔    
  Date1□date2   必要;Variant   (Date)。计算中要用到的两个日期。    
  Firstdayofweek   可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。    
  firstweekofyear   可选。指定一年的第一周的常数。如果未予指定,则以包含   1   月   1   日的星期为第一周。    
   
   
  设置  
   
  interval   参数的设定值如下:  
   
  设置   描述    
  yyyy   年    
  q   季    
  m   月    
  y   一年的日数    
  d   日    
  w   一周的日数    
  ww   周    
  h   时    
  n   分钟    
  s   秒    
   
   
  firstdayofweek   参数的设定值如下:  
   
  常数   值   描述    
  vbUseSystem   0   使用   NLS   API   设置。    
  vbSunday   1   星期日(缺省值)    
  vbMonday   2   星期一    
  vbTuesday   3   星期二    
  vbWednesday   4   星期三    
  vbThursday   5   星期四    
  vbFriday   6   星期五    
  vbSaturday   7   星期六    
   
  常数   值   描述    
  vbUseSystem   0   用   NLS   API   设置。    
  vbFirstJan1   1   从包含   1   月   1   日的星期开始(缺省值)。    
  vbFirstFourDays   2   从第一个其大半个星期在新的一年的一周开始。    
  vbFirstFullWeek   3   从第一个无跨年度的星期开始。    
   
   
  说明  
   
  DateDiff   函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用   DateDiff   来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。  
   
  为了计算   date1   与   date2   相差的日数,可以使用“一年的日数”(y)   或“日”(d)。当   interval   是“一周的日数”(w)   时,DateDiff   返回两日期间的周数。如果   date1   是星期一,DateDiff   计算到   date2   为止的星期一的个数。这个数包含   date2   但不包含   date1。不过,如果   interval   是“周”(ww),则   DateDiff   函数返回两日期间的“日历周”数。由计算   date1   与   date2   之间星期日的个数而得。如果   date2   刚好是星期日,则   date2   也会被加进   DateDiff   的计数结果中;但不论   date1   是否为星期日,都不将它算进去。  
   
  如果   date1   比   date2   来得晚,则   DateDiff   函数的返回值为负数。  
   
  firstdayofweek   参数会影响使用时间间隔符号   “W”   或   “WW”   计算的结果。  
   
  如果   date1   或   date2   是日期文字,则指定的年份成为该日期的固定部分。但是,如果   date1   或   date2   用双引号   ("   ")   括起来,且年份略而不提,则在每次计算表达式   date1   或   date2   时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。  
   
  在计算   12   月   31   日和来年的   1   月   1   日的年份差时,DateDiff   返回   1   表示相差一个年份,虽然实际上只相差一天而已。  
  Top

2 楼SnHnBn(大可达)回复于 2002-03-15 13:29:47 得分 0

startTime-endTime  
  这一减就得到一个Double型天数差,但是我想不出你要的yyyy-mm-dd   hh:mm:ss的格式能表示天数差吗?  
  Top

3 楼hx(www.efsite.net)回复于 2002-03-15 13:30:18 得分 0

时间可以直接运算。。。  
  比如  
  A-B(建议A>B)  
  再把结果转成日期型。。  
  就得到了相差日期和分秒  
  Top

4 楼ferrytang(欢迎你)回复于 2002-03-15 13:42:10 得分 25

Dim   dblAllSp   As   Double  
          Dim   dblDateSp   As   Double  
          Dim   dblTimeSp   As   Double  
          dblAllSp   =   Abs(CDbl(CDate("2001-1-1"))   -   CDbl(Now))  
          dblDateSp   =   Int(dblAllSp)  
          dblTimeSp   =   dblAllSp   -   dblDateSp  
          Debug.Print   "天:",   dblDateSp,   "小时:",   CDate(dblTimeSp)  
  Top

5 楼shawls(VB Fan)(QQ:9181729)回复于 2002-03-15 13:48:14 得分 0

 
   
  清除了!  
  Top

6 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-03-15 13:54:51 得分 0

Private   Sub   Form_Load()  
  Dim   startTime   As   String  
  Dim   endTime   As   String  
  Dim   dd   As   Long  
   
  strarttime   =   CDate("2000-02-21   19:12:13")  
  endTime   =   Now  
   
  Debug.Print   DateDiff("s",   strarttime,   endTime)   &   "秒"  
     
  dd   =   DateDiff("s",   strarttime,   endTime)               '相差多少秒         3620  
   
  Debug.Print   Int(dd   /   3600)   &   "小时"   &   Int((dd   -   Int(dd   /   3600)   *   3600)   /   60)   &   "分"   &   dd   -   Int(dd   /   60)   *   60   &   "秒"  
   
  End   Sub  
  Top

7 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-03-15 13:56:49 得分 0

DateDiff("s",   strarttime,   endTime)       得到相差多少秒     计算合多少小时   多少分      
   
  Debug.Print   Int(dd   /   3600)   &   "小时"   &   Int((dd   -   Int(dd   /   3600)   *   _  
   
  3600)   /   60)   &   "分"   &   dd   -   Int(dd   /   60)   *   60   &   "秒"  
   
  Top

8 楼miame()回复于 2002-03-15 14:00:30 得分 0

谢谢各位  
  hx(乱云山风)   ,时间的确可以直接运算,但是直接转化为日期型得到的结果是有问题的,得必须象     ferrytang(ferry)     、lihonggen0(用VB)那样经过转换才能得到正确的结果。很感谢以上量为朋友提供的方法。  
   
  Top

9 楼miame()回复于 2002-03-15 14:14:28 得分 0

天呀,怎么回事,我都给ferrytang(ferry)     、lihonggen0(用VB)各25分了,怎么都是0分呢????  
  两位真得很抱歉,我不知道怎么会这样的。Top

相关问题

  • 如何计算时间差???
  • 计算两个时间差
  • 如何计算时间差?
  • 怎样计算时间差
  • 怎样计算php里的时间差,mysql的时间差?
  • 在jsp中怎样计算时间差?
  • 在jsp中怎样计算时间差?
  • SQL怎么计算两个时间差?
  • 在JSP下如何计算时间差
  • 时间差值计算问题

关键词

  • 函数
  • date
  • 间隔
  • 计算
  • datediff
  • endtime
  • dblallsp
  • dbldatesp
  • 日数
  • 年份

得分解答快速导航

  • 帖主:miame
  • lihonggen0
  • ferrytang

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo