国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

VB.NET時間日期數據處理及技巧

2024-07-10 13:00:39
字體:
來源:轉載
供稿:網友
我們在編程中,通常都需要處理時間日期數據,這也是一種比較難于處理的數據類型,因為時間日期類型的結構相當復雜,并且還有一定的規則,如果在定義的時候不符合規則,程序在編譯的時候就會出錯。在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. 日期時間及其相關數值的獲取。

  如果您通過本文的介紹掌握了以上內容,那么本文的目的就算完成了,就讓我們下一節再見吧!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 木兰县| 邹城市| 贡山| 资兴市| 汤原县| 康马县| 璧山县| 杭锦后旗| 柳州市| 南安市| 方山县| 曲麻莱县| 高阳县| 怀远县| 黄骅市| 宁波市| 南靖县| 虞城县| 宿州市| 扬中市| 天水市| 白山市| 庄浪县| 始兴县| 璧山县| 泾川县| 饶阳县| 高阳县| 屯门区| 那曲县| 云阳县| 水城县| 武胜县| 长宁县| 拜城县| 松溪县| 隆昌县| 和硕县| 开化县| 保德县| 吴川市|