版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、字符串與時間1內(nèi)容簡介 String類StringBuilder類正則表達(dá)式日期和時間處理21.31.41 字符串1.21.1 字符串是C#編程語言中最常用到的數(shù)據(jù)類型,很多操作都需要使用字符串來完成。String類的構(gòu)造函數(shù)比較字符串提取字符串拆分字符串1.5定位與查找字符串1.6格式化字符串1.7String類中的其它常用方法31.1 String類的構(gòu)造函數(shù) 字符串是Unicode字符的有序集合,用于表示文本。String對象是System.Char對象的有序集合。System.String是一個類,專門用于存儲字符串,它允許對字符串進(jìn)行多種操作。 String類的3種構(gòu)造函數(shù),分別按不
2、同的方式對字符串進(jìn)行初始化:名稱說明String(Char)將String類新實例初始化為由Unicode字符數(shù)組指示的值String(Char,Int32)將String類的新實例初始化為由重復(fù)指定次數(shù)的指定Unicode字符指示的值String(Char,Int32,Int32)將String類的新實例初始化為由Unicode字符數(shù)組、該數(shù)組內(nèi)的起始字符位置和一個長度指示的值4例: 聲明一個字符數(shù)組和字符串,然后再聲明4個String類的對象,分別為str0、str1、str2和str3。static void Main(string args) char charSet = 計,算,機,
3、軟,件; string str = 好好學(xué)習(xí)天天向上;string str0 = str;string str1 = new string(charSet); /獲取由charStr字符數(shù)組指示的值string str3 = new string(F,6); /獲取字符F,并且將字符F重復(fù)6次string str2 = new string(charSet, 2, 3); /獲取charStr字符數(shù)組中從2開始的3個字符56 + 運算符用于連接字符串。例: string a = good + morning; 這將創(chuàng)建一個包含“good morning”的字符串對象。字符串是不可變的,即:字符
4、串對象在創(chuàng)建后,盡管從語法上看您似乎可以更改其內(nèi)容,但事實上并不可行。例如下面的代碼,編譯器實際上會創(chuàng)建一個新字符串對象來保存新的字符序列,且新對象將賦給 b。然后字符串“he”將適宜于垃圾回收。string b = he; b += llo; 相等運算符(= 和 !=)是為了比較 string 對象(而不是引用)的值。這使得對字符串相等性的測試更為直觀。例如:string a = hello; string b = he; b += “l(fā)lo;Console.WriteLine(a = b); Console.WriteLine(object)a = (object)b); 這將先顯示“Tr
5、ue”,然后顯示“False”,因為字符串的內(nèi)容是相同的,但是 a 和 b 引用的不是同一個字符串實例。7 運算符可以用于對 string 的各個字符的只讀訪問。例:string str = test; char x = str2; / x = s; 對str2賦值會引起編譯錯誤字符串文本可包含任何字符。包括轉(zhuǎn)義序列。以反斜線“”開頭,后跟一個或幾個字符,具有特定含義。如n表示換行消除緊隨其后的字符的原有含義,故稱“轉(zhuǎn)義”字符。主要用來表示那些用一般字符不便于表示的控制代碼、不可見的字符8轉(zhuǎn)義序列字符名稱Unicode 編碼單引號0 x0027雙引號0 x0022反斜杠0 x005C0Null
6、0 x0000a警報0 x0007bBackspace0 x0008n換行0 x000Ar回車0 x000Dt水平制表符0 x0009uUnicode 轉(zhuǎn)義序列u0041 = A字符串轉(zhuǎn)義序列轉(zhuǎn)義序列 表示反斜杠, u0066 表示字母 f。String a = u0066; Console.WriteLine(a); / 輸出結(jié)果: f9原義字符串以 開頭并且也用雙引號引起來。優(yōu)勢在于不處理轉(zhuǎn)義序列,因此很容易寫入,例如完全限定的文件名就是原義字符串:c:DocsSourcea.txt 等效于: c:DocsSourcea.txt 1.2 比較字符串 比較字符串是根據(jù)字符串中的字母順序來處理
7、的。可以使用“=”符號比較兩個字符串是否相等,也可以使用String提供的方法進(jìn)行比較。 Compare()方法和CompareTo()方法都可以用來比較字符串,但是比較方式不同。Compare方法是String類的靜態(tài)方法,包括6種重載方法。CompareTo不是靜態(tài)方法,可以通過一個String對象調(diào)用。str1.CompareTo(str2);1.Compare()方法和CompareTo()方法string.Compare(str1 , str2); Compare()和CompareTo()的返回值類型都是int,有3種情況:當(dāng)str1str2時,返回1當(dāng)str1=str2時,返回0
8、當(dāng)str1str2時,返回-11011Compare()的重載:Compare( str1,str2)Compare(str1,str2,boolean)Compare(str1,index1,str2,index2,length)Compare(str1,index1,str2,index2,length,boolean) boolean表示是否忽略比較字符的大小寫。 index1和index2表示整數(shù)偏移量, length表示要比較的字符的數(shù)量static void Main(string args) string str0 = 好好學(xué)習(xí)天天向上; string str1 = 我學(xué)習(xí)英語O
9、K ; string str2 = “我學(xué)習(xí)英語ok ; Console.WriteLine(string.Compare(str0, str1); Console.WriteLine(string.Compare(str0,2, str1,1,2); Console.WriteLine(string.Compare(str1, str2, false); Console.Read();2.Equals() =和Equals都可以用來比較字符串的值是否相等。返回值是bool類型。如果相等返回true,否則返回false。例:使用Equals()方法判斷用戶輸入的用戶名和密碼是否相等。if (u
10、sername.Equals(userpass) & username = userpass) Console.WriteLine(恭喜您,登錄信息成功!);else Console.WriteLine(很抱歉,您的用戶名和密碼有誤);123.Contains() String.Contains()方法用于確定某個字符串中是否包含另一個字符串,該方法返回一個bool類型,如果包含則返回true,否則返回false。此方法區(qū)分大小寫,從字符串的第一個字符位置開始,一直搜索到最后一個字符位置。例:聲明并初始化兩個字符串變量myColor和color,然后使用Contains()方法判斷myColo
11、r變量中是否包含color變量的內(nèi)容。string myColor = “我最喜歡的顏色是紅色、綠色和白色。”;string color = 白色;if (myColor.Contains(color) Console.WriteLine(返回結(jié)果為true);else Console.WriteLine(返回結(jié)果為false);131.3 提取字符串 提取字符串是指從字符串中獲取指定的字符串。string hobby = My name is Lily 假設(shè)只想得到字符串“Lily”,這時候需要用到String類中的Substring()方法。該方法有兩個重載:String.Substrin
12、g(int index1) 從指定位置開始返回要提取的字符串String.Substring(int index1,int length) 第一個參數(shù)指定子字符串開始提取的位置;第二個參數(shù)指定字符串中的字符數(shù) static void Main(string args) string mysub = 柏拉圖說:人生短短幾十年,不要給自己留下了什么遺憾 人生的苦悶有二,一是沒有被滿足,二是它得到了滿足。; string sub1 = mysub.Substring(5); String sub2 = mysub.Substring(7, 5); Console.WriteLine(整段文字是: +
13、 mysub+n); Console.WriteLine(提取的第一句話是: + sub1+n); Console.WriteLine(提取的第二句話是: + sub2); Console.ReadLine(); 141.4 拆分字符串 拆分字符串是指一個字符串被指定的分隔字符或字符串分隔為多個字符串,返回由子字符串組成的字符串?dāng)?shù)組。實現(xiàn)拆分字符串的功能需要使用String類的Split()方法,該方法有多種重載形式:string Split(char separator)string Split(char separator,int count)string Split(char separ
14、ator,StringSplitOptions options)string Split(char separator,int count,StringSplitOptions options)string Split(string separator,StringSplitOptions options)string Split(string separator,int count,StringSplitOptions options) separator參數(shù)表示分隔字符或字符串?dāng)?shù)組;count表示要返回的字符串的最大數(shù)量;options表示字符串分隔選項,是一個枚舉類型,主要有兩個值:Sy
15、stem.StringSplitOptions.RemoveEmptyEntries 省略返回數(shù)組中的空元素System.StringSplitOptions.None 要包含返回的數(shù)組中的空元素1516 例:mysub存儲四大名著的名稱(含空格),中間用逗號分隔。用Split()方法拆分: string mysub = 三 國 演 義,水 滸 傳, 紅 樓 夢,西 游 記; string subarray = mysub.Split(,); foreach (string sub in subarray) Console.WriteLine(sub); string subchar = su
16、b.Split( ); foreach (string item in subchar) Console.Write(item); Console.WriteLine(); Console.Read();string mysub = 三 國 演 義,第二水 滸 傳,紅 樓 夢,西 游 記;string sep = , ;string subarray = mysub.Split(sep, System.StringSplitOptions.None);foreach (string sub in subarray) Console.WriteLine(sub); 1.5 定位與查找字符串 定位
17、與查找字符串是指從字符串中查找指定的字符或字符串。方法說明IndexOf()返回指定字符或字符串第一次出現(xiàn)的索引位置(從0開始計算)。如果沒有找到,則返回-1IndexOfAny()返回字符數(shù)組中元素第一次出現(xiàn)的索引位置LastIndexOf()返回指定字符或字符串的最后一個索引位置。LastIndexOfAny()返回字符數(shù)組中元素最后出現(xiàn)的一個位置。StartsWith()判斷字符串是否以指定子字符串開始,返回true或falseEndsWith()判斷字符串是否以指定子字符串結(jié)束,返回true或falsestring str = 我喜歡看的是那些偉大的著作;Console.WriteLi
18、ne(的第一次出現(xiàn)的位置: + str.IndexOf(的);Console.WriteLine(那些最后出現(xiàn)的位置是: + str.LastIndexOf(那些);Console.WriteLine(是否以著作結(jié)尾 + str.EndsWith(著作); 171.6 格式化字符串 格式化字符串是指將字符、數(shù)字或日期等轉(zhuǎn)化為指定格式的字符串。主要使用Format()方法,它是String類的靜態(tài)方法。多種重載形式:string Format(string format, object arg0) 將指定字符串中的一個或多個格式項替換為對象arg0的字符串表示形式string Format(st
19、ring format, params object args) 將數(shù)組中的對象格式化為format表示的形式string Format(string format, object arg0,object arg1) 將指定的對象arg0和arg1格式化為format表示的形式string Format(string format, object arg0,object arg1,object arg2) 將指定的對象arg0、arg1和arg2格式化為format表示的形式 string s1 = 北京; string s2=上海; String s = string.Format(兩個城市
20、是:0和1, s1, s2);18 string s0 = 北京,上海,廣州; String s = string.Format(城市名是:012, s0); Format()方法除了可以格式化字符串外,還可以格式化日期和時間。.NET Framework提供了一種被稱為“標(biāo)準(zhǔn)日期和時間格式字符串”的格式字符串。常用的日期和時間格式化說明符主要包括8類:d 短日期模式,2010/10/1D 長日期模式, 2010年10月1日f 長日期和短時間模式的組合,由空格分隔F 長日期和長時間模式的組合,由空格分隔M或m 月日模式t 短時間模式,“HH:mm”T 長時間模式,“HH:mm:ss”Y或y 年
21、月模式 日期和時間的格式化19 DateTime now = DateTime.Now; Console.WriteLine(now); Console.WriteLine(); string ss = String.Format(0:d, now);/短日期 Console.WriteLine(ss); ss = String.Format(0:D, now); /長日期 Console.WriteLine(ss); ss = String.Format(0:m, now);/月日模式(M) Console.WriteLine(ss); ss = String.Format(0:y, now
22、);/年月模式(Y) Console.WriteLine(ss); ss = String.Format(0:t, now);/短時間 Console.WriteLine(ss); ss = String.Format(0:T, now); /長時間 Console.WriteLine(ss); ss = String.Format(0:f, now); /長日期短時間 Console.WriteLine(ss); ss = String.Format(0:F, now); /長日期長時間 Console.WriteLine(ss);20 使用Format()方法除了可以格式化字符串和日期外,
23、還可以格式化數(shù)字。常用的數(shù)字格式化說明符主要包括8類:C或c 將數(shù)字轉(zhuǎn)換為表示貨幣金額的字符串D或d 將整數(shù)數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)字的字符串E或e 將數(shù)字轉(zhuǎn)換為科學(xué)計數(shù)法的字符串,即-d.dddE+ddd或-d.ddde+ddd形式F或f 將數(shù)字轉(zhuǎn)換為表示浮點數(shù)的字符串,即-ddd.ddd形式G或g 根據(jù)數(shù)字類型以及是否存在精度說明符,數(shù)字會轉(zhuǎn)換為定點或科學(xué)計數(shù)法的最緊湊形式N或n 用逗號分割千位的數(shù)字,比如1234將會被變成1,234P或p 將數(shù)字轉(zhuǎn)換為表示百分比的字符串X或x 將整數(shù)數(shù)字轉(zhuǎn)換為十六進(jìn)制數(shù)字的字符串?dāng)?shù)字格式化21double d = 32.5 ;Console.WriteLine
24、(C格式0:c, d);Console.WriteLine(E格式0:e,d);1.7 String類中的其它常用方法string intro = “Hello,My name is Jim Green,Im a student.;string upper = intro.ToUpper();Console.WriteLine(“原句為:0”, intro);Console.WriteLine(全部轉(zhuǎn)換為大寫:0, upper);Console.WriteLine(全部轉(zhuǎn)換為小寫:0”, intro.ToLower(); String類中還有一些常用的方法,例如ToUpper()、ToLowe
25、r()、Copy()、CopyTo()、Replace()、Trim()、Contact()以及Join()等等。 1.ToUpper()方法和ToLower()方法 ToUpper()方法表示將字符串全部轉(zhuǎn)換為大寫;ToLower()方法表示將字符串全部轉(zhuǎn)換為小寫。221.7 String類中的其它常用方法 string oldStr = 我十分高興!; char charArray = 晴, 朗, 的, 一, 天 ; Console.Write(原始字符串是: + oldStr+rn原始字符數(shù)組是:); foreach (char c in charArray) Console.Write
26、(c); Console.WriteLine(); string newStr = String.Copy(oldStr); Console.WriteLine(Copy的結(jié)果:+newStr); oldStr.CopyTo(2, charArray, 1,3); Console.Write(CopyTo的結(jié)果:); foreach (char c in charArray) Console.Write(c); 2.Copy()方法和CopyTo()方法Copy() 將一個字符串的內(nèi)容完整的復(fù)制到一個新的字符串中,在此過程中,會創(chuàng)建一個與指定的String類具有相同值的String類的新實例C
27、opyTo() 從字符串中復(fù)制指定數(shù)量的字符到另外一個字符數(shù)組。 SourceString.CopyTo (SourceStart, DestCharArray, DestStart, count)23string oldstr = 人們都說我的生活好快樂,我也認(rèn)為自己真的快樂。;string newstr = oldstr.Replace(快樂,happy);Console.WriteLine(替換前的句子: + oldstr);Console.WriteLine(替換后的句子: + newstr); 3.Replace()方法將字符串中指定的字符替換為新的字符,或者將指定的字符串替換為新的
28、字符串。Replace()方法有兩種重載形式:string Replace(char oldChar,char newChar) 替換字符string Replace(string oldValue,string newValue) 替換字符串oldChar參數(shù)表示被替換的字符,newChar參數(shù)表示替換后的字符;oldValue參數(shù)表示被替換的字符串,newValue參數(shù)表示替換后的字符串。24string stringFirst = 有一個未來的目標(biāo),;string stringSecond = 讓我們歡欣鼓舞。;string concatstring = string.Concat(st
29、ringFirst, stringSecond);string joinstring = string.Join(“n-”, new string stringFirst, stringSecond );Console.WriteLine(Concat()方法: + concatstring);Console.WriteLine(Join()方法: + joinstring); 4.Concat()和Join()都表示連接字符串Concat() 將一個或多個字符串對象連接為一個新的字符串;Join() 將指定的字符串?dāng)?shù)組中的所有字符串連接為一個新的字符串,而且被連接的各個字符串被指定分隔字符串
30、分隔。Join的格式: string.Join(進(jìn)行連接的分隔符, 要連接的字符串?dāng)?shù)組)例: 聲明兩個字符串,分別用Concat()和Join()將它們連接起來:25 5.Trim()方法 Trim()刪除最前和最后的空格,中間部分的空格不變。 String previousString = I am a string! ; String currentString = previousString.Trim() ; “ Im a string ! “ “Im a string!” 262.32.42 StringBuilder類2.22.1 .NET Framework中提供了另外一個類St
31、ringBuilder,它和String類相反,表示動態(tài)字符串,使用這個類可以動態(tài)的插入字符串、追加字符串以及刪除字符串。追加字符串插入字符串替換字符串移除字符串272.1 追加字符串將指定的字符或字符串追加到字符串的末尾。3種方法:Append()方法 將指定的字符或字符串追加到字符串的末尾AppendLine()方法 追加指定的字符串完成后,還追加一個換行符號AppendFormat()方法 先格式化被追加的字符串,然后將其追加到末尾 Append()方法幾乎可以將任意值追加到字符串后面,如int、char、char、decimal、long、bool和short等等。常用的幾種重載形式:
32、方法含義Append(bool value )此實例的結(jié)尾追加指定的布爾值的字符串表示形式Append(char value)此實例的結(jié)尾追加指定Unicode字符的字符串形式Append(double value)實例的結(jié)尾追加指定的雙精度浮點數(shù)的字符串形式Append(int value)實例的結(jié)尾追加指定的32位有符號整數(shù)字符串形式Append(string value)在此實例的結(jié)尾追加指定字符串的副本Append(string value,int index,int count)在此實例的結(jié)尾追加指定子字符串的副本28 String s1 = This is the first st
33、ring.; String s2 = The second is better.; StringBuilder sb = new StringBuilder(); sb.Append(s1); sb.Append(s2); Console.WriteLine(sb);292.2 插入字符串 插入字符串可以使用Insert()方法, 幾乎可以將任意類型的值插入到字符串的指定位置。Insert()方法常用的重載形式如表所示。 例:在歌詞開頭處添加歌名和演唱者,并且在結(jié)尾處再添加一句歌詞。方法含義Insert(int index,double value)將雙精度浮點數(shù)的字符串形式插入到此實例的指定
34、位置Insert(int index,string value)將字符串插入到此實例中的指定字符位置Insert(int index,char value)將指定Unicode字符的字符串形式插入到指定位置Insert(int index,bool value)將布爾值的表現(xiàn)形式插入到此實例中的指定字符位置Insert(int index,int vlaue)將32位帶符號整數(shù)的字符串形式插入到指定字符位置Insert(int index,string value,int count)將指定字符串的一個或更多副本插入到此實例中的指定字符位置StringBuilder sbuilder = ne
35、w StringBuilder(昨天所有的榮譽,已變成遙遠(yuǎn)的回憶。n);sbuilder.Insert(0, 從頭再來(劉歡)n);sbuilder.Append(勤勤苦苦已度過半生,今夜重又走入風(fēng)雨。);Console.WriteLine(sbuilder);302.3 替換字符串前面已經(jīng)介紹過String類的Replace()方法,它用來表示替換字符或字符串。同樣地,在StringBuilder類中也提供了Replace()方法。31 sbuilder.Replace(“劉歡”, “l(fā)iuhuan”); / 將sbuilder中的“劉歡”都換成liuhuan2.4 移除字符串從字符串中指定
36、位置開始移除其后指定數(shù)量的字符。StringBuilder類中提供了Remove()方法,該方法中有兩個參數(shù),第一個參數(shù)表示開始移除字符的位置,第二個參數(shù)表示要移除的字符數(shù)量。StringBuilder strbuilder = new StringBuilder();strbuilder.Insert(0, 冬天來了,春天還會遠(yuǎn)嗎?);strbuilder.Remove(4,6); / 從4號字符移除6個Console.WriteLine(strbuilder.ToString();323 正則表達(dá)式33 正則表達(dá)式是指由普通字符(例如字符A到Z)以及特殊字符(稱為元字符)組成的文字模式。
37、它可以看作是一個模板,將某個字符模式與所搜索的字符串進(jìn)行匹配。 正則表達(dá)式中有一套語法匹配規(guī)則,包括字符匹配、重復(fù)匹配、字符定位、轉(zhuǎn)義匹配、字符分組、字符替換和字符決策。 Visual Studio 中提供了很多用于處理正則表達(dá)式的類,如Regex類。在使用的時候,需要引入System.Text.RegularExpressions命名空間。 Regex是正則表達(dá)式的基本類,它提供了IsMatch()、Replace()、Match()和Split()等方法。34Regex類 1.字符匹配 IsMatch 該方法返回一個bool類型,匹配成功返回true,否則返回false。例:驗證輸入的電話
38、號碼是否合法:北京區(qū)號010后面緊跟8位數(shù)字。using System.Text.RegularExpressions ;string Regextext = 010d8; string tel = Console.ReadLine();if (Regex.IsMatch(tel, Regextext) Console.WriteLine(恭喜您,您的電話號碼有效。);35if ( Regex.IsMatch(tel, “0103-6”) / 010后面跟一位36之間的數(shù)字if ( Regex.IsMatch(str, “D”) / 一個非數(shù)字if ( Regex.IsMatch(addr,
39、“w3”) ) / 包含www36 正則表達(dá)式字符匹配 字符匹配表示一個范圍內(nèi)的字符是否匹配。例如,A-Z表示匹配字母A-Z之間的任意字符。它主要用于檢查一個字符串中是否含有某種子字符串、將匹配的子字符串做替換或從字符串中取出符合某個條件的子字符串等。字符語法語法解釋語法例子d匹配0-9之間的數(shù)字d可以匹配1,不可以匹配10D匹配非數(shù)字D匹配F,不匹配3w單個字母/數(shù)字www匹配Ac3,不匹配#AW非字母/數(shù)字WW匹配#,不匹配das匹配空白字符Dsd匹配D 3,不匹配33S 匹配非空字符SSS匹配abc,不匹配a(空格)b.匹配任意字符匹配C$3,但是不匹配換行匹配括號中的任意字符3-5匹配
40、3、4和5,不匹配6匹配非括號中的字符3-5匹配6,不匹配35的字符 正則表達(dá)式重復(fù)匹配 在多數(shù)情況下可能要匹配一個單詞或一組數(shù)字。重復(fù)匹配就是用來確定前面的內(nèi)容重復(fù)出現(xiàn)的次數(shù)。字符語法語法解釋語法例子nn是非負(fù)整數(shù),匹配n次字符c3表示匹配ccc,不匹配cc或ccccn,n是非負(fù)整數(shù),匹配n次和n次以上c2,表示匹配cc和ccc以上,不匹配cn,mn是非負(fù)整數(shù),匹配n次以上和m次以下c1,3匹配c、cc和ccc,不匹配cccc?重復(fù)匹配0次或1次3?匹配3或0,不匹配非3和0,等價于0,1+匹配1次或多次s+匹配一個以上的s,等價于1,*匹配0次以上s*匹配0以上s,不匹配非N*s,等價于0
41、,3738 正則表達(dá)式字符定位符號描述例匹配從字符串的開頭開始。d3567-777- 中的 567$匹配必須出現(xiàn)在字符串的末尾。-d4$8-12-2012 中的 -2012b單詞的開頭或結(jié)尾,也就是單詞的分界處,只匹配一個位置baw*b匹配以字母a開頭的單詞先是某個單詞開始處(b),然后是字母a,然后是任意數(shù)量的字母 (w*),最后是單詞結(jié)束處(b)string s = Console.ReadLine();if (Regex.IsMatch(s, “0-9*$”) / 定位在開頭,匹配0次以上必須出現(xiàn)在字符串末尾 Console.WriteLine(ok);例: 判斷是否是數(shù)字 前面判斷北京
42、電話號碼的例子,如何確保:輸入的全是數(shù)字,區(qū)號010之前和8位號碼之后都沒有其它內(nèi)容?2.Replace()方法 在正則表達(dá)式中,Replace()方法實現(xiàn)字符串的替換。例: 將電子郵件地址中的“”替換為“WO”string test = Regex.Replace(email, , WO“) ;39 Regex類 Regex類 3.Split()方法 根據(jù)匹配正則表達(dá)式進(jìn)行拆分,儲存在字符串?dāng)?shù)組中。兩種重載形式:Regex.Split(string input,string pattern)Regex.Split(string input,string pattern,RegexOption
43、s options)string addr = &;string list = Regex.Split(addr, W+); foreach (string str in list) Console.WriteLine(str); / 循環(huán)輸出各個字符串404.34 日期和時間處理4.24.1DateTime結(jié)構(gòu)TimeSpan結(jié)構(gòu)日期和時間的常用操作414.1 DateTime結(jié)構(gòu) DateTime結(jié)構(gòu)是一個值類型,表示時間上的一刻,通常以日期和當(dāng)天的時間表示。它的時間值以100納秒為單位(該單位稱為刻度tick)進(jìn)行計算。 DateTime結(jié)構(gòu)中只有兩個靜態(tài)的只讀字段:MaxValue和M
44、inValue。MaxValue表示DateTime的最大可能值,MinValue表示DateTime的最小可能值。 例如分別使用MaxValue和MinValue獲得DateTime的最大值和最小值,然后在控制臺輸出,具體代碼如下:DateTime maxtime = DateTime.MaxValue;DateTime mintime = DateTime.MinValue;Console.WriteLine(maxtime + * + mintime); 運行上述代碼,控制臺輸出的結(jié)果是:9999-12-31 23:59:59*0001-1-1 00:00:00 1.字段4243 2.屬
45、性 DateTime結(jié)構(gòu)中不僅包括字段,還包括屬性。在DateTime結(jié)構(gòu)中包含16個只讀屬性,其中3個靜態(tài)屬性,13個實例屬性。通過這些屬性我們可以獲取系統(tǒng)的當(dāng)前時間、年份、月份、分鐘等等。屬性說明Now靜態(tài)屬性,獲取計算機上的當(dāng)前時間Today靜態(tài)屬性,獲取當(dāng)前日期UtcNow靜態(tài)屬性,獲取計算機上的當(dāng)前時間,世界時間(UTC)Day獲取此實例所表示的日期為該月中的第幾天DayOfWeek獲取此實例所表示的日期是星期幾DayOfYear獲取此實例所表示的日期是該年中的第幾天Year獲取年份部分Month獲取日期的月份部分Date獲取日期部分Hour獲取日期的小時部分Minute獲取日期的分
46、鐘部分Second獲取日期的秒部分Millisecond獲取日期的毫秒部分Ticks獲取日期和時間的刻度數(shù)(計時周期數(shù))TimeOfDay獲取當(dāng)天時間,即當(dāng)天自午夜以來已經(jīng)過時間的部分DateTime nowtime = DateTime.Now;Console.WriteLine(當(dāng)前時間: + nowtime);Console.WriteLine(當(dāng)前年份: + DateTime.Now.Year);Console.WriteLine(當(dāng)前月份: + DateTime.Now.Month);Console.WriteLine(當(dāng)前天數(shù): + DateTime.Now.Day);443.方法
47、方法說明Compare()比較兩個DateTime實例,返回一個指示第一個實例是早于、等于還是晚于第二個實例DaysInMonth()返回指定年和月份中的天數(shù)Equals()比較兩個DateTime結(jié)構(gòu)是否相等IsLeapYear()判斷指定的年份是否為閏年。如果是返回true,否則返回falseParse()將字符串轉(zhuǎn)換為等效的DateTimeParseExact()將字符串轉(zhuǎn)換為等效的DateTime。其格式必須與指定格式匹配TryParse()將字符串轉(zhuǎn)換為等效的DateTime。成功返回true,否則falseTryParseExact()將字符串轉(zhuǎn)換為等效的DateTime。格式必須
48、與指定格式匹配DateTime結(jié)構(gòu)中的方法包括靜態(tài)方法和實例方法,其中靜態(tài)方法14個,實例方法28個。下表列出了一些靜態(tài)方法。454.2 TimeSpan結(jié)構(gòu)TimeSpan表示時間間隔或持續(xù)時間,按正負(fù)天數(shù)、小時數(shù)、分鐘數(shù)、秒數(shù)以及秒的小數(shù)部分進(jìn)行度量。用于度量持續(xù)時間的最大時間單位是天,時間間隔以天為單位來度量。TimeSpan的值是等于所表示時間間隔的刻度數(shù)。一個刻度等于100納秒,TimeSpan對象的值的范圍在MinValue和MaxValue之間。TimeSpan值可以表示為: -d.hh:mm:ss.ff 其中減號是可選的,它指示負(fù)時間間隔,d分量表示天,hh表示小時(24小時制
49、),mm表示分鐘,ss表示秒,而ff為秒的小數(shù)部分。即時間間隔包括整的正負(fù)天數(shù)、天數(shù)和剩余的不足一天的時長,或者只包含不足一天的時長。TimeSpan ts0 = new TimeSpan(12, 32, 40); 例:創(chuàng)建TimeSpan結(jié)構(gòu)的對象ts0,指定該對象的小時部分為12、分鐘部分為32、秒部分為40。最終的對象值為12:32:40。代碼如下:4647 TimeSpan結(jié)構(gòu)中包含8個靜態(tài)字段,其中3個只讀字段,5個常數(shù)字段。3個只讀字段分別是:MaxValue表示最大的TimeSpan值,MinValue表示最小的TimeSpan值,Zero指定零TimeSpan值。5個常數(shù)字段是
50、: TicksPerDay 一天中的刻度數(shù)TicksPerHour 1小時的刻度數(shù)TicksPerMillisecond 1毫秒的刻度數(shù)TicksPerMinute 1分鐘的刻度數(shù)TicksPerSecond 1秒的刻度數(shù) 1.字段 例如使用MaxValue、MinValue和TicksPerHour字段獲得TimeSpan結(jié)構(gòu)的最大值、最小值和1小時的刻度數(shù)并且將結(jié)果輸出。代碼如下:Console.WriteLine(TimeSpan的最大值:+TimeSpan.MaxValue);Console.WriteLine(TimeSpan的最小值: + TimeSpan.MinValue);Co
51、nsole.WriteLine(1小時的刻度數(shù):+TimeSpan.TicksPerHour); TimeSpan結(jié)構(gòu)主要包含11個實例屬性,均為只讀屬性: 2.屬性屬性說明Days獲取TimeSpan結(jié)構(gòu)所表示的時間間隔的天數(shù)部分Hours獲取TimeSpan結(jié)構(gòu)所表示的時間間隔的小時數(shù)Milliseconds獲取TimeSpan結(jié)構(gòu)所表示的時間間隔的毫秒數(shù)Minutes獲取TimeSpan結(jié)構(gòu)所表示的時間間隔的分鐘Seconds獲取TimeSpan結(jié)構(gòu)所表示的時間間隔的秒數(shù)Ticks表示當(dāng)前TimeSpan結(jié)構(gòu)的值的刻度數(shù)TotalDays獲取以整天數(shù)和天的小數(shù)部分表示的當(dāng)前TimeSpan的值TotalHours獲取以整小時數(shù)和小時的小數(shù)部分表示的當(dāng)前TimeSpan結(jié)構(gòu)的值TotalMinu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山東外貿(mào)職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- ESG視角下CX公司負(fù)面事件的市場反應(yīng)研究
- 施工方案審查制度
- 2025年安陽幼兒師范高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 2025年安徽財貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年常考版參考題庫含答案解析
- 管道工程安全施工方案
- 陽臺加寬施工方案圖片
- 2025至2030年中國有端子旋轉(zhuǎn)卡接式交接箱數(shù)據(jù)監(jiān)測研究報告
- 2025年寧德職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 安裝工程專項施工方案
- 2024年人教版小學(xué)三年級信息技術(shù)(下冊)期末試卷附答案
- TB 10012-2019 鐵路工程地質(zhì)勘察規(guī)范
- 新蘇教版三年級下冊科學(xué)全冊知識點(背誦用)
- 鄉(xiāng)鎮(zhèn)風(fēng)控維穩(wěn)應(yīng)急預(yù)案演練
- 腦梗死合并癲癇病人的護(hù)理查房
- 蘇教版四年級上冊脫式計算300題及答案
- 犯罪現(xiàn)場保護(hù)培訓(xùn)課件
- 扣款通知單 采購部
- 電除顫操作流程圖
- 湖北教育出版社三年級下冊信息技術(shù)教案
- 設(shè)計基礎(chǔ)全套教學(xué)課件
評論
0/150
提交評論