设为首页
给我留言
首页       关于蓬缘    克隆建站    模版建站    建站流程    建站疑虑    支付方式    网站推广    网站优化    建站学院    联系我们    
蓬缘网络技术工作室真心为您服务!霸州网站建设 + 霸州网页设计 + 霸州企业建站 + 霸州FLASH设计 + 霸州网站开发 + 平面设计,专业技术人员一对一服务让建站更加专业更加放心……二十四小时服务热线: 15932615201 13810319167。欢迎来电咨询……霸州网站建设工作室|霸州网站制作|霸州建站|霸州网站改版|霸州企业建站|霸州专业建站|蓬缘网络技术工作室 - 我要网站 - http://www.woyaowangzhan.com……霸州蓬缘网络技术工作室是专业的建站团队,提供专业的霸州建站服务:1、霸州专业网站建设(霸州网站设计)2、霸州网站推广(百度、Google、搜狐、阿里巴巴等)3、霸州网站优化(SEO、百度推广优化)4、霸州域名注册(.com/.cn/.net等)5、霸州虚拟主机(ASP、.net等)6、霸州政府建站7、霸州门户网站…… 现在时间是
建站学堂
 
VB.NET时间日期数据处理及技巧
[ 2008-9-27 6:04:00 ] 作者: 来源:

  核心提示:...

我们在编程中,通常都需要处理时间日期数据,这也是一种比较难于处理的数据类型,因为时间日期类型的结构相当复杂,并且还有一定的规则,如果在定义的时候不符合规则,程序在编译的时候就会出错。在Visual Basic .Net用以处理时间日期类型的结构(Structure)主要是2个,分别为DateTime和TimeSpan,这二个结构都位于命名空间System,并且在Visual Basic .Net中自己也定义了一种数据类型Date,这种数据类型相当于上面提及的DateTime类。这时候可能很多朋友会问了,什么叫结构,它有什么作用?其实结构和类在作用和功能上是非常类似的,它也有构造函数,二者的主要区别如下:

  1. 结构不能包含显式的无参数构造函数。结构成员将自动初始化为它们的默认值。

  2. 结构不能有以下形式的初始值设定项:base。

  其实对于大多数朋友,你具体使用结构和类的时候,完全可以不需要考虑到二者区别,因为二者在使用上几乎相同。

  虽然Visual Basic .Net中提供了Date数据类型来处理时间日期类型,但在实际中往往并不使用它,因为它的定义非常麻烦,加上时间日期类型结构相当复杂,对于很多初学者往往会出现错误。下面就是在Visual Basic .Net中通过Date数据类型定义一个时间日期类型数据变量的语句,就可见其烦杂了:

Dim s As Date = #12/2/2002 7:00:00 PM#

  在定义Date数据类型时候,必须注意下面三点:

  1. Date数值必须以数字符号"#"括起来。

  2. Date数值中的日期数据可有可无,如果有必须符合格式"m/d/yyyy"。

  3. Date数值中的时间数据可有可无,如果有必须和日期数据通过空格分开,并且时分秒之间以":"分开。
  一.DateTime和TimeSpan的关系和区别:

  DateTime和TimeSpan是Visual Basic .Net中用以处理时间日期类型数据的二个主要的结构,这二者的区别在于,DatTime表示一个固定的时间,而TimeSpan表示的是一个时间间隔,即一段时间。在下面介绍的程序示例中,TimeSpan就用以当前时间和给定时间之差。

  二.DateTime和TimeSpan中的常用成员及其说明:

  DateTime结构和TimeSpan结构提供了丰富的方法和属性,通过这些方法和属性,几乎可以直接处理任何时间日期类型数据。表01和表02分别是DateTime结构的常用属性和常用方法及其说明:

属性 说明 Date 获取此实例的日期部分。 Day 获取此实例所表示的日期为



该月中的第几天。 DayOfWeek 获取此实例所表示的日期是星期几。 DayOfYear 获取此实例所表示的日期是该年中的第几天。 Hour 获取此实例所表示日期的小时部分。 Millisecond 获取此实例所表示日期的毫秒部分。 Minute 获取此实例所表示日期的分钟部分。 Month 获取此实例所表示日期的月份部分。 Now 创建一个DateTime实例,它是此计算机上的当前本地日期和时间。 Second 获取此实例所表示日期的秒部分。 TimeOfDay 获取此实例的当天的时间。 Today 获取当前日期。 Year 获取此实例所表示日期的年份部分。

表01:DateTime类的常用属性及其说明

方法 说明 Add 将指定的TimeSpan的值加到此实例的值上。 AddDays 将指定的天数加到此实例的值上。 AddHours 将指定的小时数加到此实例的值上。 AddMilliseconds 将指定的毫秒数加到此实例的值上。 AddMinutes 将指定的分钟数加到此实例的值上。 AddMonths 将指定的月份数加到此实例的值上。 AddSeconds 将指定的秒数加到此实例的值上。 AddYears 将指定的年份数加到此实例的值上。 DaysInMonth 返回指定年份中指定月份的天数。 IsLeapYear 返回指定的年份是否为闰年的指示。 Parse 将日期和时间的指定字符串表示转换成其等效的DateTime实例。 Subtract 从此实例中减去指定的时间或持续时间。 ToLongDateString 将此实例的值转换为其等效的长日期字符串表示形式。 ToLongTimeString 将此实例的值转换为其等效的长时间字符串表示形式。 ToShortTimeString 将此实例的值转换为其等效的短时间字符串表示形式。 ToShortDateString 将此实例的值转换为其等效的短日期字符串表示形式。

表02:DateTime结构的常用方法及其说明


  表03和表04分别是TimeSpan结构的常用属性和常用方法及其说明:


属性 说明 Days 获取


由此实例表示的整天数。 Hours 获取由此实例表示的整小时数。 Milliseconds 获取由此实例表示的整毫秒数。 Minutes 获取由此实例表示的整分钟数。 Seconds 获取由此实例表示的整秒数。 Ticks 获取用刻度表示的此实例的值。 TotalDays 获取以整天数和天的小数部分表示的此实例的值。 TotalHours 获取以整小时数和小时的小数部分表示的此实例的值。 TotalMilliseconds 获取以整毫秒数和毫秒的小数部分表示的此实例的值。 TotalMinutes 获取以整分钟数和分钟的小数部分表示的此实例的值。 TotalSeconds 获取以整秒数和秒的小数部分表示的此实例的值。


表03:TimeSpan结构的常用属性及其说明


方法 说明 Add 将指定的TimeSpan添加到此实例中。 Duration 返回其值为此实例的绝对值的TimeSpan。 FromDays 返回表示指定天数的TimeSpan,其中对天数的指定精确到最接近的毫秒。 FromHours 返回表示指定小时数的TimeSpan,其中对小时数的指定精确到最接近的毫秒。 FromMilliseconds 返回表示指定毫秒数的TimeSpan。 FromMinutes 返回表示指定分钟数的TimeSpan,其中对分钟数的指定精确到最接近的毫秒。 FromSeconds 返回表示指定秒数的TimeSpan,其中对秒数的指定精确到最接近的毫秒。 Subtract 从此实例中减去指定的TimeSpan。


表04:TimeSpan结构的常用方法及其说明


  三.DateTime和TimeSpan中常用成员的使用方法及其使用技巧:

  在了解了DateTime和TimeSpan的常用方法和常用属性后,下面将通过一个示例来掌握上述方法和属性的用法。在下面的示例中将着重介绍下列问题的处理方法:

  1. 判断输入的日期时间字符串的合法性。

  2. DateTime实例之间的运算。

  3. 日期时间数据的获取方法。

  下面是用Visual Basic .Net实现上述功能的示例的主要步骤:

  1. 启动Visual Studio .Net。

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【




新建项目】对话框。

  3. 将【项目类型】设置为【Visual Basic项目】。

  4. 将【模板】设置为【Windows应用程序】。

  5. 在【名称】文本框中输入【处理日期时间数据】。

  6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"目录中就产生了名称为"处理日期时间数据"的文件夹,并在里面创建了名称为【处理日期时间数据】的项目文件。

  7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应操作:

  一个TabControl组件。
  三个TabPage组件。
  十九个Label组件。
  十九个TextBox组件,用以显示时间日期数值。
  三个Button组件,分别是Button1至Button3,并在这三个Button组件拖入Form1的设计窗体后,分别双击这三个组件,这样系统会在Form1.vb文件分别产生这三个组件的Click时间对应的处理代码。

  8. 按照图01、图02、图03设定设定组件的主要属性:




图01:【处理日期时间数据】设计界面之一



图02:【处理日期时间数据】设计界面之二



图03:【处理日期时间数据】设计界面之三


  在完成上面的工作以后,下面就进入程序的功能实现阶段。

  9. 判断输入的日期时间字符串的合法性。为了实现这个功能,首先要掌握把输入的日期时间字符串转换成可供Visual Basic .Net使用的日期时间类型的数据的方法。这个方法就是使用DateTime中的Parse方法,Parse方法能够把一个符合日期时间的字符串转换成一个DateTime实例。下面是一个具体的转换代码:
Dim dtTemp as System.DateTime = System.DateTime.Parse ( "12/2/2002 13:20:25")
但如果给定要转换的字符串不合法,程序在执行的时候就会出现异常。程序通过对异常的捕获,来判断给定要转换的字符串合法性。在Visual Basic .Net中捕获异常一般使用的是Try …Catch ….End Try语句。这里要注意的是Try …Catch ….End Try语句是一个非常重要的语句,在后面章节中的很多关键代码部分都会经常的使用到它,通过它的确能够解决很多麻烦的问题。



  下面是在本程序中实现这个功能的具体操作步骤:

  首先把Visual Studio .Net的当前窗口切换到【Form1.vb】,进入Form1.vb文件的编辑界面。然后用下列的代码替换Form1.vb中Button3组件的Click事件对应的处理代码。


Private Sub Button3_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button3.Click
Dim dtMyDate As System.DateTime
Try
 dtMyDate = DateTime.Parse ( TextBox19.Text )
 ''转换给定的日期时间字符串
Catch
 MessageBox.Show ( "输入的时间日期字符串不合法!", "错误!" )
 ''提示出错
 TextBox19.Text = ""
 Return
End Try
''以上是判断输入日期时间字符串合法性的典型代码
End Sub


  10. 获取计算机日期时间数据。程序要实现这个功能非常简单,只需要掌握表01和表02中列出的DateTime常用属性、方法的使用方法就能够方便完成了。具体到本程序具体的操作是用下列代码替换Form1.vb中Button2的Click事件对应的处理代码:


Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
 Dim dMyDate As DateTime = DateTime.Now
 ''创建实例,此实例存放当前日期和时间
 TextBox1.Text = dMyDate.ToString ( )
 ''显示当前日期和时间
 TextBox2.Text = dMyDate.Date
 ''显示当前日期
 TextBox3.Text = dMyDate.Year
 ''显示年度
 TextBox4.Text = dMyDate.Month
 ''显示月份
 TextBox5.Text = dMyDate.Day
 ''显示日号
 TextBox6.Text = dMyDate.DayOfYear
 ''显示当前天是一年中的第多少天
 TextBox7.Text = dMyDate.DayOfWeek
 ''显示当前天是本星期中的第多少天
 TextBox8.Text = dMyDate.ToLongDateString
 ''以长日期形式来显示日期
 TextBox9.Text = dMyDate.ToShortDateString
 ''以短日期形式来显示日期
 TextBox18.Text = dMyDate.TimeOfDay.ToString ( )
 ''显示当前时间
 TextBox17.Text = dMyDate.Hour
 ''显示当前时间的小时
 TextBox16.Text = dMyDate.Minute
 ''显示当前时间的分钟
 TextBox15.Text = dMyDate.Second
 ''显示当前时间的秒
 TextBox14.Text = dMyDate.Millisecond
 ''显示当前时间的毫秒
 TextBox13.Text = dMyDate.ToLongTimeString
 ''以长时间形式来显示当前时间
 TextBox12.Text = dMyDate.ToShortTimeString
 ''以短时间形式来显示当前时间
End Sub



  11. 日期时间数据的运算。在下面介绍的代码是实现二个DateTime实例之差,即当前的时间和给定的时间之差。解决的步骤是首先判断给定的日期时间字符串的合法性,如果不合法,则返回。如果合法,则以此来创建DateTime实例dtMyDate。然后dtMyDate调用其Subtract方法减去当前的时间,并存放到TimeSpan实例tsTemp。tsTemp调用其Duration方法把二者之差的绝对值显示出来。具体到程序中的实现方法是用下列代码替换Form1.vb中的Button2的Click事件的处理代码:


Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
 Dim tsTemp As TimeSpan
 Dim dtMyDate As DateTime
 Try
  dtMyDate = DateTime.Parse ( TextBox10.Text )
 Catch
  MessageBox.Show ( "输入的时间日期字符串不合法!" , "错误!" )
  Return
 End Try
 ''判断输入的时间日期字符串的合法性
 tsTemp =




dtMyDate.Subtract ( DateTime.Now )
 ''二个DateTime实例相减
 TextBox11.Text = tsTemp.Duration.ToString ( )
 ''取二个DateTime之差绝对值,并显示出来
End Sub




  至此在上述步骤都正确执行,并成功保存后,【处理日期时间数据】项目的全部工作就完成了。图04、图05和图06分别是【处理日期时间数据】项目编译后的运行界面:



图04:【处理日期时间数据】运行界面之一



图05:【处理日期时间数据】运行界面之二



图06:【处理日期时间数据】运行界面之三


  四.小结:

  本文介绍在Visual Basic .Net中日期时间类型数据的处理方法及在处理这些数据时的一些注意事项和技巧。以下就是本文中的知识点:

  1. 结构和类的区别。

  2. 用Date变量定义日期时间,及其注意事项。

  3. DateTime和TimeSpan的主要区别,和二者主要的成员及其简单说明。

  4. 判断给定时间日期的合法性。
  
  5. 日期时间类型数据(DateTime实例)的运算。

  6. 日期时间及其相关数值的获取。

  如果您通过本文的介绍掌握了以上内容,那么本文的目的就算完成了,就让我们下一节再见吧!



 
   建站学堂
  ●  ASP编程技术
  ●  PHP编程技术
  ●  JSP编辑技术
  ●  ASP.NET编程技术
  ●  JAVA软件开发
  ●  C#软件开发
  ●  VB.NET软件开发
   网站推广与营销
  ● 网站备案的9个细节问题
  ● 网上注册一个域名的意义
  ● 网站从建设到运营的5点注意
  ● 8种提高网站ALEXA排名的方法
  ● 搜索引擎之间的4个区别
  ● 网站优化基本搜索引擎优化篇
  ● 点评A8音乐商业模式
  ● 5种不可取的网站推广方法
  ● SNS将成四大门户竞争的关键筹码
  ● 企业整站优化的一些技巧
  ● 马化腾创业三问
  ● 站长们每天都要做的工作
   网站优化与排名
  ● 快速提升访问量的方法
  ● 网站优化关键词工具,优化软件,SEO优化工具,SEO优化软件
  ● 总结四点分享我建站失败的经历
  ● 从达人圈到开心人人首谈SNS域名的选择与定位
  ● 良好心态是站长们成功的关键
  ● 浅谈做冷门站的一些心得体会
  ● 小游戏网站经营最重要的是站在用户的角度创新
  ● 关于网站首页打开速度之我见
  ● 谈一次域名解析出错带来的惨痛代价
  ● 我的地方论坛的建站之路经验总结
  ● 千人站长讲座第46期空姐网军哥谈特色社区运营
  ● 浅谈QQ类网站之站长的出路