5 von 5 fanden dies hilfreich - Dieses Thema bewerten.

Calendar-Klasse

Stellt die Zeit in Abschnitte aufgeteilt dar, z. B. in Wochen, Monate und Jahre.

Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)

[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public abstract class Calendar : ICloneable
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public abstract class Calendar implements ICloneable
SerializableAttribute 
ComVisibleAttribute(true) 
public abstract class Calendar implements ICloneable

Ein Kalender teilt die Zeit in Abschnitte wie Wochen, Monate und Jahre auf. Anzahl, Länge und Beginn der Abschnitte sind in jedem Kalender unterschiedlich.

Jeder beliebige Zeitpunkt kann unter Verwendung eines bestimmten Kalenders als Gruppe numerischer Werte dargestellt werden. So gab es z. B. zum Zeitpunkt (1999, 3, 20, 8, 46, 0, 0.0) im gregorianischen Kalender eine Frühlings-Tagundnachtgleiche, also am 20. März 1999 unserer Zeitrechnung um 8:46:00:0.0. Eine Implementierung von Calendar kann jeder Datumsangabe im zulässigen Wertebereich eines bestimmten Kalenders einer ähnlichen Gruppe numerischer Werte zuordnen, und DateTime kann solche Gruppen numerischer Werte mithilfe der Informationen von Calendar und DateTimeFormatInfo einer Textdarstellung zuordnen. Die Textdarstellung kann kulturabhängig (z. B. "8:46 AM March 20th 1999 AD" für die Kultur Englisch (USA)) oder kulturunabhängig (z. B. "1999-03-20T08:46:00" im ISO-Format 8601) sein.

Eine Calendar-Implementierung kann einen oder mehrere Zeiträume definieren. Die Calendar-Klasse bezeichnet die Zeiträume als aufgelistete ganze Zahlen, wobei der aktuelle Zeitraum (CurrentEra) den Wert 0 hat.

Um den Unterschied zwischen dem Kalenderjahr und dem tatsächlich verstrichenen Zeitraum auszugleichen, in dem die Erde um die Sonne oder der Mond um die Erde kreist, weicht die Anzahl der Tage in einem Schaltjahr von der eines normalen Kalenderjahres ab. Jede Calendar-Implementierung definiert Schaltjahre auf andere Weise.

Aus Konsistenzgründen wird der ersten Einheit in den einzelnen Intervallen, z. B. dem ersten Monat, der Wert 1 zugewiesen.

Der System.Globalization-Namespace enthält die folgenden Calendar-Implementierungen: GregorianCalendar, HebrewCalendar, HijriCalendar, JapaneseCalendar, JulianCalendar, KoreanCalendar, TaiwanCalendar und ThaiBuddhistCalendar.

Im folgenden Codebeispiel werden die Member der Calendar-Klasse veranschaulicht.

using System;
using System.Globalization;


public class SamplesCalendar  {

   public static void Main()  {

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

      // Uses the default calendar of the InvariantCulture.
      Calendar myCal = CultureInfo.InvariantCulture.Calendar;

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

      // Adds 5 to every component of the DateTime.
      myDT = myCal.AddYears( myDT, 5 );
      myDT = myCal.AddMonths( myDT, 5 );
      myDT = myCal.AddWeeks( myDT, 5 );
      myDT = myCal.AddDays( myDT, 5 );
      myDT = myCal.AddHours( myDT, 5 );
      myDT = myCal.AddMinutes( myDT, 5 );
      myDT = myCal.AddSeconds( myDT, 5 );
      myDT = myCal.AddMilliseconds( myDT, 5 );

      // Displays the values of the DateTime.
      Console.WriteLine( "After adding 5 to each component of the DateTime:" );
      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( "   Hour:         {0}", myCal.GetHour( myDT ) );
      Console.WriteLine( "   Minute:       {0}", myCal.GetMinute( myDT ) );
      Console.WriteLine( "   Second:       {0}", myCal.GetSecond( myDT ) );
      Console.WriteLine( "   Milliseconds: {0}", myCal.GetMilliseconds( myDT ) );
      Console.WriteLine();
   }

}


/*
This code produces the following output.

April 3, 2002 of the Gregorian calendar:
   Era:          1
   Year:         2002
   Month:        4
   DayOfYear:    93
   DayOfMonth:   3
   DayOfWeek:    Wednesday
   Hour:         0
   Minute:       0
   Second:       0
   Milliseconds: 0

After adding 5 to each component of the DateTime:
   Era:          1
   Year:         2007
   Month:        10
   DayOfYear:    286
   DayOfMonth:   13
   DayOfWeek:    Saturday
   Hour:         5
   Minute:       5
   Second:       5
   Milliseconds: 5

*/

import System.* ;
import System.Globalization.* ;

public class SamplesCalendar
{
    public static void main(String[] args)
    {
        // Sets a DateTime to April 3, 2002 of the Gregorian calendar.
        DateTime myDT =  new DateTime(2002, 4, 3, new GregorianCalendar());

        // Uses the default calendar of the InvariantCulture.
        Calendar myCal = CultureInfo.get_InvariantCulture().get_Calendar();

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

        // Adds 5 to every component of the DateTime.
        myDT = myCal.AddYears(myDT, 5);
        myDT = myCal.AddMonths(myDT, 5);
        myDT = myCal.AddWeeks(myDT, 5);
        myDT = myCal.AddDays(myDT, 5);
        myDT = myCal.AddHours(myDT, 5);
        myDT = myCal.AddMinutes(myDT, 5);
        myDT = myCal.AddSeconds(myDT, 5);
        myDT = myCal.AddMilliseconds(myDT, 5);

        // Displays the values of the DateTime.
        Console.WriteLine("After adding 5 to each component of the DateTime:");
        DisplayValues(myCal, myDT);
    } //main
   
    public static void DisplayValues(Calendar myCal, DateTime myDT)
    {
        Console.WriteLine("   Era:          {0}", 
            System.Convert.ToString(myCal.GetEra(myDT)));
        Console.WriteLine("   Year:         {0}", 
            System.Convert.ToString(myCal.GetYear(myDT)));
        Console.WriteLine("   Month:        {0}", 
            System.Convert.ToString(myCal.GetMonth(myDT)));
        Console.WriteLine("   DayOfYear:    {0}", 
            System.Convert.ToString(myCal.GetDayOfYear(myDT)));
        Console.WriteLine("   DayOfMonth:   {0}", 
            System.Convert.ToString(myCal.GetDayOfMonth(myDT)));
        Console.WriteLine("   DayOfWeek:    {0}",
            System.Convert.ToString(myCal.GetDayOfWeek(myDT)));
        Console.WriteLine("   Hour:         {0}",
            System.Convert.ToString(myCal.GetHour(myDT)));
        Console.WriteLine("   Minute:       {0}",
            System.Convert.ToString(myCal.GetMinute(myDT)));
        Console.WriteLine("   Second:       {0}", 
            System.Convert.ToString(myCal.GetSecond(myDT)));
        Console.WriteLine("   Milliseconds: {0}", 
            System.Convert.ToString(myCal.GetMilliseconds(myDT)));
        Console.WriteLine();
    } //DisplayValues
} //SamplesCalendar

/*
This code produces the following output.

April 3, 2002 of the Gregorian calendar:
   Era:          1
   Year:         2002
   Month:        4
   DayOfYear:    93
   DayOfMonth:   3
   DayOfWeek:    Wednesday
   Hour:         0
   Minute:       0
   Second:       0
   Milliseconds: 0

After adding 5 to each component of the DateTime:
   Era:          1
   Year:         2007
   Month:        10
   DayOfYear:    286
   DayOfMonth:   13
   DayOfWeek:    Saturday
   Hour:         5
   Minute:       5
   Second:       5
   Milliseconds: 5
*/

System.Object
  System.Globalization.Calendar
     Abgeleitete Klassen
Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)