WEB开发网
开发学院WEB开发综合 VB中的处理问题 阅读

VB中的处理问题

 2006-02-27 11:40:27 来源:WEB开发网   
核心提示:编程中常常会与时间打交道,VB编程自然也不例外,VB中的处理问题,以下就谈谈我在这方面的一点经验,VB中提供了很多变量类型,这为我们编程提供了很大的方便,例如想知道你的电脑连续工作多久了,DATE型就是专门用了存储时间的,1、DATE型变量及其相关函数
编程中常常会与时间打交道,VB编程自然也不例外。以下就谈谈我在这方面的一点经验。
  VB中提供了很多变量类型,DATE型就是专门用了存储时间的。
  1、DATE型变量及其相关函数。
  在内部,一个Date占8个字节的内存,你可以方便地用它来存储日期和时间。给Date变量赋值是很容易的。但请保证输入顺序与系统默认的时间表示顺序相同。例如:
  DimdAsDate
  d=#5/23/9911:45:34AM#
  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变量。如:
  PRintFormat(d,“generaldate”)`99-5-2311:45:34
  PrintFormat(d,“longdate”)`1999年5月23日
  PrintFormat(d,“mediumdate”)`99-05-23
  PrintFormat(d,“shortdate”)`99-5-23
  PrintFormat(d,“longtime”)`11:45:34
  PrintFormat(d,“mediumtime”)`11:45AM
  PrintFormat(d,“shorttime”)`11:45
  Format函数也允许你自己规定显示格式。如:
  PrintFormat(d,“mmmm”)`may产生日期中月份的英文
  以以上日期为例,如想显示其中的一部分信息可使用以下函数:
  PrintMonth(d)`5
  PrintDay(d)`23
  PrintYear(d)`1999
  PrintHour(d)`11
  PrintMinute(d)`45
  PrintSecond(d)`34
  PrintWeekDay(d)`1
  Weekday提供了一组内部常量,vbSunday代表1,直到vbSaturday代表7。
  Now函数可返回今天的日期及时间。如:
  PrivateSubForm_Click()
  DimdAsDate
  d=Now
  Printd
  EndSub
  灵活地应用以上的函数,可以大大地简化你的程序。例如想计算10000秒等于几小时几分几秒可写为:
  PrivateSubForm_Click()
  DimdAsDate
  d=TimeSerial(0,0,10000)
  Printd
  EndSub
  结果为2:46:40。
  2、与时间相关的常用控件。
  Timer控件是一个奇特的控件。Timer控件会在固定时间间隔中运行Timer事件。此间隔是由Interval属性决定的,其单位为千分之一秒。但不要以为将其值设为0事件就可不间断地运行了。结果恰恰相反,事件将一次也不运行。同时还要注意变量的声明。如:
  PrivateSubTimer1_Timer()
  DimaAsInteger
  a=a+1
  Printa
  EndSub

  DimaAsInteger
  PrivateSubTimer1_Timer()
  a=a+1
  Printa
  EndSub
  试试看,其结果是完全不同的。
  当需要用户输入时间时,为避免出现错误的时间,可以使用日历控件。它只允许用户在日历表中选择日期,避免了错误的发生。
  3、记录时间的API函数。
  GetTickCountWindowsAPI函数可返回Windows启动以来消失的毫秒数。其精度高于VB的Timer函数。且Timer函数会在午夜清零,而GetTickCount函数只有当机器连续使用49.7天后才返回零。这为我们编程提供了很大的方便。例如想知道你的电脑连续工作多久了,可新建一工程,然后添加以下代码:
  PrivateDeclareFunctionGetTickCountLib“kernel32"()AsLong
  PrivateSubForm_Load()
  DimdAsDate
  DimtAsInteger
  Form1.Show
  t=GetTickCount\1000
  d=TimeSerial(0,0,t)
  Printd
  EndSub->

Tags:VB 处理 问题

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接