2011年8月18日 星期四

[.NET] System.Globalization 一個很有趣的命名空間

System.Globalization 命名空間 (Namespace) 包含定義文化特性相關資訊的類別,包括語言、國家/地區、使用中的曆法、日期、貨幣和數字格式模式,以及字串的排序順序。這些類別 (Class) 對撰寫全球化 (國際化) 的應用程式很有用。像 StringInfo 和 TextInfo 之類的類別即提供進階的全球化功能,例如 Surrogate 支援和文字項目處理。

其中的

TaiwanCalendar

TaiwanLunisolarCalendar

分別是代表台灣的曆法和陰曆

System.Globalization當然還有其他各國的曆法

而它們的使用方法都相同,以下範例程式用TaiwanCalendar代表



using System;
using System.Globalization;


public class SamplesTaiwanCalendar {

public static void Main() {

// Sets a DateTime to April 3, 2002 of the Gregorian calendar.
DateTime myDT = new DateTime( 2002, 4, 3, new GregorianCalendar() );

// Creates an instance of the TaiwanCalendar.
TaiwanCalendar myCal = new TaiwanCalendar();

// Displays the values of the DateTime.
Console.WriteLine( "April 3, 2002 of the Gregorian calendar equals the following in the Taiwan calendar:" );
DisplayValues( myCal, myDT );

// Adds two years and ten months.
myDT = myCal.AddYears( myDT, 2 );
myDT = myCal.AddMonths( myDT, 10 );

// Displays the values of the DateTime.
Console.WriteLine( "After adding two years and ten months:" );
DisplayValues( myCal, myDT );

}

public static void DisplayValues( Calendar myCal, DateTime myDT ) {
Console.WriteLine( " Era: {0}", myCal.GetEra( myDT ) );
Console.WriteLine( " Year: {0}", myCal.GetYear( myDT ) );
Console.WriteLine( " Month: {0}", myCal.GetMonth( myDT ) );
Console.WriteLine( " DayOfYear: {0}", myCal.GetDayOfYear( myDT ) );
Console.WriteLine( " DayOfMonth: {0}", myCal.GetDayOfMonth( myDT ) );
Console.WriteLine( " DayOfWeek: {0}", myCal.GetDayOfWeek( myDT ) );
Console.WriteLine();
}

}

/*
This code produces the following output.

April 3, 2002 of the Gregorian calendar equals the following in the Taiwan calendar:
Era: 1
Year: 91
Month: 4
DayOfYear: 93
DayOfMonth: 3
DayOfWeek: Wednesday

After adding two years and ten months:
Era: 1
Year: 94
Month: 2
DayOfYear: 34
DayOfMonth: 3
DayOfWeek: Thursday

*/

沒有留言:

張貼留言