DateTimeFormatInfo.Calendar Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli kültür için kullanılacak takvimi alır veya ayarlar.
public:
property System::Globalization::Calendar ^ Calendar { System::Globalization::Calendar ^ get(); void set(System::Globalization::Calendar ^ value); };
public System.Globalization.Calendar Calendar { get; set; }
member this.Calendar : System.Globalization.Calendar with get, set
Public Property Calendar As Calendar
Özellik Değeri
Geçerli kültür için kullanılacak takvim. İçin varsayılan InvariantInfo bir GregorianCalendar nesnesidir.
Özel durumlar
özelliği olarak null
ayarlanmıştır.
özelliği, geçerli kültür Calendar için geçerli olan bir nesneye ayar yapılıyor.
özelliği ayar yapılıyor ve DateTimeFormatInfo nesne salt okunur.
Örnekler
Aşağıdaki örnek, ChangeCalendar
geçerli takvim olmadığı ya da kültür tarafından desteklenmiyorsa, bir kültürün geçerli takvimini belirtilen takvime değiştiren bir yöntemi tanımlar. Yöntemi çağıran kod, CultureInfo Arapça (Mısır) kültürünü temsil eden bir nesne oluşturur ve ilk olarak takvimini Japonca takvime değiştirmeye çalışır. Japonca takvim desteklenmediğinden, yöntem kültürün takvimini değiştirmez. Ancak, ümmül-Esma takvimi koleksiyonun bir üyesi olduğundan, yöntemi bunu ar-EG kültürü için geçerli CultureInfo.OptionalCalendars takvim yapmada başarılı olur.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo ci = CultureInfo.CreateSpecificCulture("ar-EG");
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar));
CalendarUtilities.ChangeCalendar(ci, new JapaneseCalendar());
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar));
CalendarUtilities.ChangeCalendar(ci, new UmAlQuraCalendar());
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar));
}
}
public class CalendarUtilities
{
private Calendar newCal;
private bool isGregorian;
public static void ChangeCalendar(CultureInfo ci, Calendar cal)
{
CalendarUtilities util = new CalendarUtilities(cal);
// Is the new calendar already the current calendar?
if (util.CalendarExists(ci.DateTimeFormat.Calendar))
return;
// Is the new calendar supported?
if (Array.Exists(ci.OptionalCalendars, util.CalendarExists))
ci.DateTimeFormat.Calendar = cal;
}
private CalendarUtilities(Calendar cal)
{
newCal = cal;
// Is the new calendar a Gregorian calendar?
isGregorian = cal.GetType().Name.Contains("Gregorian");
}
private bool CalendarExists(Calendar cal)
{
if (cal.ToString() == newCal.ToString()) {
if (isGregorian) {
if (((GregorianCalendar) cal).CalendarType ==
((GregorianCalendar) newCal).CalendarType)
return true;
}
else {
return true;
}
}
return false;
}
public static string ShowCalendarName(Calendar cal)
{
string calName = cal.ToString().Replace("System.Globalization.", "");
if (cal is GregorianCalendar)
calName += ", Type " + ((GregorianCalendar) cal).CalendarType.ToString();
return calName;
}
}
// The example displays the following output:
// The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
// The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
// The current calendar for the ar-EG culture is UmAlQuraCalendar
Imports System.Globalization
Module Example
Public Sub Main()
Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("ar-EG")
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar))
CalendarUtilities.ChangeCalendar(ci, New JapaneseCalendar())
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar))
CalendarUtilities.ChangeCalendar(ci, New UmAlQuraCalendar())
Console.WriteLine("The current calendar for the {0} culture is {1}",
ci.Name,
CalendarUtilities.ShowCalendarName(ci.DateTimeFormat.Calendar))
End Sub
End Module
Public Class CalendarUtilities
Private newCal As Calendar
Private isGregorian As Boolean
Public Shared Sub ChangeCalendar(ci As CultureInfo, cal As Calendar)
Dim util As New CalendarUtilities(cal)
' Is the new calendar already the current calendar?
If util.CalendarExists(ci.DateTimeFormat.Calendar) Then
Exit Sub
End If
' Is the new calendar supported?
If Array.Exists(ci.OptionalCalendars, AddressOf util.CalendarExists) Then
ci.DateTimeFormat.Calendar = cal
End If
End Sub
Private Sub New(cal As Calendar)
newCal = cal
' Is the new calendar a Gregorian calendar?
isGregorian = cal.GetType().Name.Contains("Gregorian")
End Sub
Private Function CalendarExists(cal As Calendar) As Boolean
If cal.ToString() = newCal.ToString Then
If isGregorian Then
If CType(cal, GregorianCalendar).CalendarType =
CType(newCal, GregorianCalendar).CalendarType Then
Return True
End If
Else
Return True
End If
End If
Return False
End Function
Public Shared Function ShowCalendarName(cal As Calendar) As String
Dim calName As String = cal.ToString().Replace("System.Globalization.", "")
If TypeOf cal Is GregorianCalendar Then
calName += ", Type " + CType(cal, GregorianCalendar).CalendarType.ToString()
End If
Return calName
End Function
End Class
' The example displays the following output:
' The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
' The current calendar for the ar-EG culture is GregorianCalendar, Type Localized
' The current calendar for the ar-EG culture is UmAlQuraCalendar
Açıklamalar
CalendarÖzelliği yalnızca nesnesiyle ilişkili kültür için geçerli olan takvimleri kabul eder DateTimeFormatInfo . CultureInfo.OptionalCalendarsÖzelliği, belirli bir kültür tarafından kullanılabilecek takvimleri belirtir ve CultureInfo.Calendar özelliği kültür için varsayılan takvimi belirtir.
Önemli
Japonca takvimlerde dönemler, yağışın temellerini temel almaktadır ve bu nedenle değişmesi beklenir. Örneğin, 1 Mayıs 2019, ve 'de Reiwa döneminin başlangıcını işaret JapaneseCalendar JapaneseLunisolarCalendar etti. Bu tür bir dönem değişikliği, bu takvimleri kullanan tüm uygulamaları etkiler. Daha fazla bilgi için ve uygulamalarınızı etkilendiğini belirlemek için bkz. .NET'te Japonca takviminde yeni bir dönemi işleme. Uygulamalarınızı dönem değişikliğine hazır Windows için uygulamalarınızı farklı sistemlerde test etme hakkında bilgi için bkz. Uygulamalarınızı Japonca dönemi değişikliğine hazırlama. .NET'te birden çok dönem içeren takvimleri destekleyen özellikler ve birden çok dönemi destekleyen takvimlerle çalışırken en iyi yöntemler için bkz. Silmelerle çalışma.
Bu özelliğin değerini değiştirmek aşağıdaki özellikleri de etkiler: MonthNames , AbbreviatedMonthNames ,, DayNames AbbreviatedDayNames , CalendarWeekRule , FirstDayOfWeek , FullDateTimePattern , LongDatePattern , ShortDatePattern , YearMonthPattern , ve MonthDayPattern .
Örneğin, geçerli iş parçacığının kültürü Japonca ise, bu özellik JapaneseCalendar , veya kabul eder Localized GregorianCalendar USEnglish GregorianCalendar . JapaneseCalendarKullanıldığında, varsayılan uzun tarih belirleyicisi "gg y" \x5e74 'm ' \x6708 ' \x65e5 ' "olur. Localized GregorianCalendar , Kullanıldığında, varsayılan uzun tarih belirleyicisi "yyyy" \x5e74 'm ' \x6708 ' \x65e5 ' "olur.