专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » vb时间:VB中的时间处理问题 »正文

vb时间:VB中的时间处理问题

来源: 发布时间:星期四, 2008年9月25日 浏览:65次 评论:0
编程中常常会与时间打交道,vb编程自然也不例外。以下就谈谈我在这方面的一点经验。
   vb中提供了很多变量类型,date型就是专门用了存储时间的。
   1、date型变量及其相关函数。
   在内部,一个date占8个字节的内存,你可以方便地用它来存储日期和时间。给date变量赋值是很容易的。但请保证输入顺序与系统默认的时间表示顺序相同。例如:
   dim d as date
   d = #5/23/99 11:45:34 am#
   dateserial函数可以把年、月、日的数字组合成一个date值。timeserial函数可把小时、分、秒的数字组合成一个date值。且两函数可以叠加。
   d = dateserial(1999, 5, 23) + timeserial(11, 45, 34)
   而datevalue 和timevalue 函数则可将代表日期和时间的字符串转化为date型,并且也可以叠加。
   d = datevalue(“1999/ 5/ 23”) + timevalue(“11: 45: 34”)
   format函数可按预定的格式显示或打印一个date变量。如:
   print format(d, “general date”) `99-5-23 11:45:34
   print format(d, “long date”) `1999年5月23日
   print format(d, “medium date”) `99-05-23
   print format(d, “short date”) `99-5-23
   print format(d, “long time”) `11:45:34
   print format(d, “medium time”) `11:45 am
   print format(d,“short time”) `11:45
   format函数也允许你自己规定显示格式。如:
   print format(d, “mmmm”) `may 产生日期中月份的英文
   以以上日期为例,如想显示其中的一部分信息可使用以下函数:
   print month(d) `5
   print day(d) `23
   print year(d) `1999
   print hour(d) `11
   print minute(d) `45
   print second(d) `34
   print weekday(d)`1
   weekday 提供了一组内部常量,vbsunday代表1,直到 vbsaturday代表7。
   now 函数可返回今天的日期及时间。如:
   private sub form_click()
   dim d as date
   d = now
   print d
   end sub
   灵活地应用以上的函数,可以大大地简化你的程序。例如想计算10000秒等于几小时几分几秒可写为:
   private sub form_click()
   dim d as date
   d = timeserial(0, 0, 10000)
   print d
   end sub
   结果为2:46:40。
   2、与时间相关的常用控件。
   timer控件是一个奇特的控件。timer 控件会在固定时间间隔中运行timer事件。此间隔是由interval属性决定的,其单位为千分之一秒。但不要以为将其值设为0事件就可不间断地运行了。结果恰恰相反,事件将一次也不运行。同时还要注意变量的声明。如:
   private sub timer1_timer()
   dim a as integer
   a = a + 1
   print a
   end sub

   dim a as integer
   private sub timer1_timer()
   a = a + 1
   print a
   end sub
   试试看,其结果是完全不同的。
   当需要用户输入时间时,为避免出现错误的时间,可以使用日历控件。它只允许用户在日历表中选择日期,避免了错误的发生。
   3、记录时间的api函数。
   gettickcount windows api函数可返回 windows 启动以来消失的毫秒数。其精度高于vb的timer 函数。且timer 函数会在午夜清零,而gettickcount 函数只有当机器连续使用49.7天后才返回零。这为我们编程提供了很大的方便。例如想知道你的电脑连续工作多久了,可新建一工程,然后添加以下代码:
   private declare function gettickcount lib “kernel32\" () as long
   private sub form_load()
   dim d as date
   dim t as integer
   form1.show
   t = gettickcount \\ 1000
   d = timeserial(0, 0, t)
   print d
   end sub

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: