日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VB.NET日期與時(shí)間數(shù)據(jù)處理及技巧

 趨明 2012-02-16

我們?cè)诰幊讨?,通常都需要處理時(shí)間日期數(shù)據(jù),這也是一種比較難于處理的數(shù)據(jù)類(lèi)型,因?yàn)闀r(shí)間日期類(lèi)型的結(jié)構(gòu)相當(dāng)復(fù)雜,并且還有一定的規(guī)則,如果在定義的時(shí)候不符合規(guī)則,程序在編譯的時(shí)候就會(huì)出錯(cuò)。在Visual Basic .Net用以處理時(shí)間日期類(lèi)型的結(jié)構(gòu)(Structure)主要是2個(gè),分別為DateTime和TimeSpan,這二個(gè)結(jié)構(gòu)都位于命名空間System,并且在Visual Basic .Net中自己也定義了一種數(shù)據(jù)類(lèi)型Date,這種數(shù)據(jù)類(lèi)型相當(dāng)于上面提及的DateTime類(lèi)。這時(shí)候可能很多朋友會(huì)問(wèn)了,什么叫結(jié)構(gòu),它有什么作用?其實(shí)結(jié)構(gòu)和類(lèi)在作用和功能上是非常類(lèi)似的,它也有構(gòu)造函數(shù),二者的主要區(qū)別如下:

  

  1. 結(jié)構(gòu)不能包含顯式的無(wú)參數(shù)構(gòu)造函數(shù)。結(jié)構(gòu)成員將自動(dòng)初始化為它們的默認(rèn)值。

  

  2. 結(jié)構(gòu)不能有以下形式的初始值設(shè)定項(xiàng):base。

  

  其實(shí)對(duì)于大多數(shù)朋友,你具體使用結(jié)構(gòu)和類(lèi)的時(shí)候,完全可以不需要考慮到二者區(qū)別,因?yàn)槎咴谑褂蒙蠋缀跸嗤?/P>

  

  雖然Visual Basic .Net中提供了Date數(shù)據(jù)類(lèi)型來(lái)處理時(shí)間日期類(lèi)型,但在實(shí)際中往往并不使用它,因?yàn)樗亩x非常麻煩,加上時(shí)間日期類(lèi)型結(jié)構(gòu)相當(dāng)復(fù)雜,對(duì)于很多初學(xué)者往往會(huì)出現(xiàn)錯(cuò)誤。下面就是在Visual Basic .Net中通過(guò)Date數(shù)據(jù)類(lèi)型定義一個(gè)時(shí)間日期類(lèi)型數(shù)據(jù)變量的語(yǔ)句,就可見(jiàn)其煩雜了:

  

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

  

  在定義Date數(shù)據(jù)類(lèi)型時(shí)候,必須注意下面三點(diǎn):

  

  1. Date數(shù)值必須以數(shù)字符號(hào)"#"括起來(lái)。

  

  2. Date數(shù)值中的日期數(shù)據(jù)可有可無(wú),如果有必須符合格式"m/d/yyyy"。

  

  3. Date數(shù)值中的時(shí)間數(shù)據(jù)可有可無(wú),如果有必須和日期數(shù)據(jù)通過(guò)空格分開(kāi),并且時(shí)分秒之間以":"分開(kāi)。

  

  一.DateTime和TimeSpan的關(guān)系和區(qū)別:

  DateTime和TimeSpan是Visual Basic .Net中用以處理時(shí)間日期類(lèi)型數(shù)據(jù)的二個(gè)主要的結(jié)構(gòu),這二者的區(qū)別在于,DatTime表示一個(gè)固定的時(shí)間,而TimeSpan表示的是一個(gè)時(shí)間間隔,即一段時(shí)間。在下面介紹的程序示例中,TimeSpan就用以當(dāng)前時(shí)間和給定時(shí)間之差。

  

  二.DateTime和TimeSpan中的常用成員及其說(shuō)明:

  DateTime結(jié)構(gòu)和TimeSpan結(jié)構(gòu)提供了豐富的方法和屬性,通過(guò)這些方法和屬性,幾乎可以直接處理任何時(shí)間日期類(lèi)型數(shù)據(jù)。表01和表02分別是DateTime結(jié)構(gòu)的常用屬性和常用方法及其說(shuō)明:

    

    

    

    

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

  在了解了DateTime和TimeSpan的常用方法和常用屬性后,下面將通過(guò)一個(gè)示例來(lái)掌握上述方法和屬性的用法。在下面的示例中將著重介紹下列問(wèn)題的處理方法:

  

  1. 判斷輸入的日期時(shí)間字符串的合法性。

  

  2. DateTime實(shí)例之間的運(yùn)算。

  

  3. 日期時(shí)間數(shù)據(jù)的獲取方法。

  

  下面是用Visual Basic .Net實(shí)現(xiàn)上述功能的示例的主要步驟:

  

  1. 啟動(dòng)Visual Studio .Net。

  

  2. 選擇菜單【文件】|【新建】|【項(xiàng)目】后,彈出【新建項(xiàng)目】對(duì)話(huà)框。

  

  3. 將【項(xiàng)目類(lèi)型】設(shè)置為【Visual Basic項(xiàng)目】。

  

  4. 將【模板】設(shè)置為【W(wǎng)indows應(yīng)用程序】。

  

  5. 在【名稱(chēng)】文本框中輸入【處理日期時(shí)間數(shù)據(jù)】。

  

  6. 在【位置】的文本框中輸入【E:\VS.NET項(xiàng)目】,然后單擊【確定】按鈕,這樣在"E:\VS.NET項(xiàng)目"目錄中就產(chǎn)生了名稱(chēng)為"處理日期時(shí)間數(shù)據(jù)"的文件夾,并在里面創(chuàng)建了名稱(chēng)為【處理日期時(shí)間數(shù)據(jù)】的項(xiàng)目文件。

  

  7. 把Visual Studio .Net的當(dāng)前窗口切換到【Form1.vb(設(shè)計(jì))】窗口,并從【工具箱】中的【W(wǎng)indows窗體組件】選項(xiàng)卡中往Form1窗體中拖入下列組件,并執(zhí)行相應(yīng)操作:

  

  一個(gè)TabControl組件。

  三個(gè)TabPage組件。

  十九個(gè)Label組件。

  十九個(gè)TextBox組件,用以顯示時(shí)間日期數(shù)值。

  三個(gè)Button組件,分別是Button1至Button3,并在這三個(gè)Button組件拖入Form1的設(shè)計(jì)窗體后,分別雙擊這三個(gè)組件,這樣系統(tǒng)會(huì)在Form1.vb文件分別產(chǎn)生這三個(gè)組件的Click時(shí)間對(duì)應(yīng)的處理代碼。

  

  8. 按照?qǐng)D01、圖02、圖03設(shè)定設(shè)定組件的主要屬性

    

   圖01:【處理日期時(shí)間數(shù)據(jù)】設(shè)計(jì)界面之一

    

   圖02:【處理日期時(shí)間數(shù)據(jù)】設(shè)計(jì)界面之二

    

   圖03:【處理日期時(shí)間數(shù)據(jù)】設(shè)計(jì)界面之三

  

  在完成上面的工作以后,下面就進(jìn)入程序的功能實(shí)現(xiàn)階段。

  

  9. 判斷輸入的日期時(shí)間字符串的合法性。為了實(shí)現(xiàn)這個(gè)功能,首先要掌握把輸入的日期時(shí)間字符串轉(zhuǎn)換成可供Visual Basic .Net使用的日期時(shí)間類(lèi)型的數(shù)據(jù)的方法。這個(gè)方法就是使用DateTime中的Parse方法,Parse方法能夠把一個(gè)符合日期時(shí)間的字符串轉(zhuǎn)換成一個(gè)DateTime實(shí)例。下面是一個(gè)具體的轉(zhuǎn)換代碼:

  Dim dtTemp as System.DateTime = System.DateTime.Parse ( "12/2/2002 13:20:25")

  但如果給定要轉(zhuǎn)換的字符串不合法,程序在執(zhí)行的時(shí)候就會(huì)出現(xiàn)異常。程序通過(guò)對(duì)異常的捕獲,來(lái)判斷給定要轉(zhuǎn)換的字符串合法性。在Visual Basic .Net中捕獲異常一般使用的是Try …Catch ….End Try語(yǔ)句。這里要注意的是Try …Catch ….End Try語(yǔ)句是一個(gè)非常重要的語(yǔ)句,在后面章節(jié)中的很多關(guān)鍵代碼部分都會(huì)經(jīng)常的使用到它,通過(guò)它的確能夠解決很多麻煩的問(wèn)題。

  下面是在本程序中實(shí)現(xiàn)這個(gè)功能的具體操作步驟:

  

  首先把Visual Studio .Net的當(dāng)前窗口切換到【Form1.vb】,進(jìn)入Form1.vb文件的編輯界面。然后用下列的代碼替換Form1.vb中Button3組件的Click事件對(duì)應(yīng)的處理代碼。

  

  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 )

  '轉(zhuǎn)換給定的日期時(shí)間字符串

  Catch

  MessageBox.Show ( "輸入的時(shí)間日期字符串不合法!", "錯(cuò)誤!" )

  '提示出錯(cuò)

  TextBox19.Text = ""

  Return

  End Try

  '以上是判斷輸入日期時(shí)間字符串合法性的典型代碼

  End Sub

  

  10. 獲取計(jì)算機(jī)日期時(shí)間數(shù)據(jù)。程序要實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)單,只需要掌握表01和表02中列出的DateTime常用屬性、方法的使用方法就能夠方便完成了。具體到本程序具體的操作是用下列代碼替換Form1.vb中Button2的Click事件對(duì)應(yīng)的處理代碼:

  

  Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click

  Dim dMyDate As DateTime = DateTime.Now

  '創(chuàng)建實(shí)例,此實(shí)例存放當(dāng)前日期和時(shí)間

  TextBox1.Text = dMyDate.ToString ( )

  '顯示當(dāng)前日期和時(shí)間

  TextBox2.Text = dMyDate.Date

  '顯示當(dāng)前日期

  TextBox3.Text = dMyDate.Year

  '顯示年度

  TextBox4.Text = dMyDate.Month

  '顯示月份

  TextBox5.Text = dMyDate.Day

  '顯示日號(hào)

  TextBox6.Text = dMyDate.DayOfYear

  '顯示當(dāng)前天是一年中的第多少天

  TextBox7.Text = dMyDate.DayOfWeek

  '顯示當(dāng)前天是本星期中的第多少天

  TextBox8.Text = dMyDate.ToLongDateString

  '以長(zhǎng)日期形式來(lái)顯示日期

  TextBox9.Text = dMyDate.ToShortDateString

  '以短日期形式來(lái)顯示日期

  TextBox18.Text = dMyDate.TimeOfDay.ToString ( )

  '顯示當(dāng)前時(shí)間

  TextBox17.Text = dMyDate.Hour

  '顯示當(dāng)前時(shí)間的小時(shí)

  TextBox16.Text = dMyDate.Minute

  '顯示當(dāng)前時(shí)間的分鐘

  TextBox15.Text = dMyDate.Second

  '顯示當(dāng)前時(shí)間的秒

  TextBox14.Text = dMyDate.Millisecond

  '顯示當(dāng)前時(shí)間的毫秒

  TextBox13.Text = dMyDate.ToLongTimeString

  '以長(zhǎng)時(shí)間形式來(lái)顯示當(dāng)前時(shí)間

  TextBox12.Text = dMyDate.ToShortTimeString

  '以短時(shí)間形式來(lái)顯示當(dāng)前時(shí)間

  End Sub

  

  11. 日期時(shí)間數(shù)據(jù)的運(yùn)算。在下面介紹的代碼是實(shí)現(xiàn)二個(gè)DateTime實(shí)例之差,即當(dāng)前的時(shí)間和給定的時(shí)間之差。解決的步驟是首先判斷給定的日期時(shí)間字符串的合法性,如果不合法,則返回。如果合法,則以此來(lái)創(chuàng)建DateTime實(shí)例dtMyDate。然后dtMyDate調(diào)用其Subtract方法減去當(dāng)前的時(shí)間,并存放到TimeSpan實(shí)例tsTemp。tsTemp調(diào)用其Duration方法把二者之差的絕對(duì)值顯示出來(lái)。具體到程序中的實(shí)現(xiàn)方法是用下列代碼替換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 ( "輸入的時(shí)間日期字符串不合法!" , "錯(cuò)誤!" )

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多