说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB中的时间处理问题

HTML文档下载 WORD文档下载 PDF文档下载
VB中的时间处理问题
作者:罗程
编程中常常会与时间打交道,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
VB开发通讯软件 VB实现图形动画的三种方法 VB随机图像的魅力 VB中不规则图形热点的实现 VB中任意旋转位图的实现 请问这样的SQL语句怎样写?可以实现吗? 帮我解释以下关于‘gdfocused in state’的问题吧! 请教这两个语句不同在哪里??? 送给zhouqingyuan(浪帆)的积分 -2 大家好啊 小女子刚学C语言 还请各位大哥大姐多多关照? 如何自动给表中的数据顺序分配行号? 在VC下非MFC程序里如何使用一个窗口控件 在mapinfo中计算最佳路径 关于文件读写问题--频繁的!!!100分! 指数函数中幂为分数怎么计算分数计算指数函数中,底数 一个自然数的分数幂计算如5的五分之一次幂怎么算,给 一个数的分数次幂的计算公式 幂是分数如何运算例 :780*3558(1/2)/ 答案是1乘10的负6次方, 零指数幂与负整数指数幂的意义 负指数幂的法则是什么? 幂指数公式谁知道? 底数为整数,指数为分数的幂如何计算啊,我是初中生简 为何中美趋同反而滋生冲突?日本佐贺县秋季祭孔英媒:中国首支核潜艇部队在海上巡逻以色列拟释放第二批26名长期关押巴勒多地密集推高考改革 十年寒窗学数学只中国-东盟港口城市合作助力广西钦州开最高人民法院青年联合会召开座谈会国务院:加大定向降准力度玫琳凯与上海宋庆龄基金会共同成立感恩杨雄:更加主动把上海发展放在全国大局三国之刘欣篡汉修仙任务大奴隶主网游之魔兽剑圣黑暗血途茶马古道旅游曼飞龙白塔旅游曼春满佛寺旅游傣族园旅游望天树空中走廊旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘