zoukankan      html  css  js  c++  java
  • vb时间处理

    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

    -------------------------------------------------------

      CDate()函数将得到地时间字符串进行转换为date类型地值,然后在插入到数据库中,开端在一台电脑上运行并没有错。转换的结果与电脑中时间的格式设置有关

    系统设置相关开端——〉设置——〉掌握面板——〉区域和语言选项——〉区域选项——〉自定义——〉时间(日期)

      可用进行二次转换:format(cdate(),"YYYY-MM-DDHH:MM:SS")

  • 相关阅读:
    tcp传送报文
    整理下本周工作中遇到的疑问;uid/euid/suid;docker镜像管理
    网络隔离
    ubuntu 只有客人会话登录(第一次深刻感受文件权限的威力 )
    ubuntu 只有客人会话登录(第一次深刻感受文件权限的威力)
    使用gdb查看栈帧的情况,有ebp
    使用gdb查看栈帧的情况, 没有ebp
    再看perf是如何通过dwarf处理栈帧的
    dwarf是如何处理栈帧的?
    数据库设计的误区—>CHAR与VARCHAR
  • 原文地址:https://www.cnblogs.com/mitang/p/1855239.html
Copyright © 2011-2022 走看看