CalendarWeekRule Enum

Definisi

Mendefinisikan aturan yang berbeda untuk menentukan minggu pertama dalam setahun.

public enum class CalendarWeekRule
public enum CalendarWeekRule
[System.Serializable]
public enum CalendarWeekRule
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CalendarWeekRule
type CalendarWeekRule = 
[<System.Serializable>]
type CalendarWeekRule = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CalendarWeekRule = 
Public Enum CalendarWeekRule
Warisan
CalendarWeekRule
Atribut

Bidang

FirstDay 0

Menunjukkan bahwa minggu pertama dalam setahun dimulai pada hari pertama dalam setahun dan berakhir sebelum hari pertama berikutnya yang ditunjuk dalam seminggu. Nilainya adalah 0.

FirstFourDayWeek 2

Menunjukkan bahwa minggu pertama dalam setahun adalah minggu pertama dengan empat hari atau lebih sebelum hari pertama yang ditunjuk dalam seminggu. Nilainya adalah 2.

FirstFullWeek 1

Menunjukkan bahwa minggu pertama tahun ini dimulai pada kejadian pertama hari pertama yang ditunjuk dalam seminggu pada atau setelah hari pertama dalam setahun. Nilainya adalah 1.

Keterangan

Anggota CalendarWeekRule enumerasi dikembalikan oleh DateTimeFormatInfo.CalendarWeekRule properti dan digunakan oleh kalender budaya saat ini untuk menentukan aturan minggu kalender. Nilai enumerasi juga digunakan sebagai parameter untuk Calendar.GetWeekOfYear metode .

Aturan minggu kalender bergantung pada System.DayOfWeek nilai yang menunjukkan hari pertama dalam seminggu selain bergantung pada CalendarWeekRule nilai. Properti DateTimeFormatInfo.FirstDayOfWeek memberikan nilai default untuk budaya, tetapi nilai apa pun DayOfWeek dapat ditentukan sebagai hari pertama dalam seminggu dalam metode .Calendar.GetWeekOfYear

Minggu pertama berdasarkan FirstDay nilai dapat memiliki satu hingga tujuh hari. Minggu pertama berdasarkan FirstFullWeek nilai selalu memiliki tujuh hari. Minggu pertama berdasarkan FirstFourDayWeek nilai dapat memiliki empat hingga tujuh hari.

Misalnya, di kalender Gregorian, misalkan hari pertama tahun ini (1 Januari) jatuh pada hari Selasa dan hari pertama yang ditunjuk dalam seminggu adalah Hari Minggu. Memilih FirstFullWeek mendefinisikan Minggu pertama (6 Januari) sebagai awal minggu pertama tahun ini. Lima hari pertama dalam setahun dianggap sebagai bagian dari minggu terakhir tahun sebelumnya. Sebaliknya, memilih FirstFourDayWeek mendefinisikan hari pertama dalam setahun (1 Januari) sebagai awal minggu pertama tahun ini karena ada lebih dari empat hari dari 1 Januari hingga hari sebelum Hari Minggu berikutnya.

Tanggal Hari Pertama FirstFullWeek FirstFourDayWeek
Des 31 Sen Minggu lalu di tahun sebelumnya Minggu lalu di tahun sebelumnya Minggu lalu di tahun sebelumnya
Jan 1 Tue Minggu 1 Minggu lalu di tahun sebelumnya Minggu 1
Jan 2 Wed Minggu 1 Minggu lalu di tahun sebelumnya Minggu 1
Jan 3 Thu Minggu 1 Minggu lalu di tahun sebelumnya Minggu 1
Jan 4 Jum Minggu 1 Minggu lalu di tahun sebelumnya Minggu 1
Jan 5 Sat Minggu 1 Minggu lalu di tahun sebelumnya Minggu 1
Jan 6 Matahari Minggu 2 Minggu 1 Minggu 2
Jan 7 Mon Minggu 2 Minggu 1 Minggu 2
Jan 8 Tue Minggu 2 Minggu 1 Minggu 2
Jan 9 Wed Minggu 2 Minggu 1 Minggu 2
Jan 10 Thu Minggu 2 Minggu 1 Minggu 2
Jan 11 Jum Minggu 2 Minggu 1 Minggu 2
Jan 12 Sat Minggu 2 Minggu 1 Minggu 2

Misalkan hari pertama tahun ini (1 Januari) jatuh pada hari Jumat dan hari pertama yang ditunjuk dalam seminggu adalah Hari Minggu. Memilih FirstFourDayWeek mendefinisikan Minggu pertama (3 Januari) sebagai awal minggu pertama tahun ini karena ada kurang dari empat hari dari 1 Januari hingga hari sebelum Minggu berikutnya.

Tanggal Hari Pertama FirstFullWeek FirstFourDayWeek
Des 31 Thu Minggu lalu di tahun sebelumnya Minggu lalu di tahun sebelumnya Minggu lalu di tahun sebelumnya
Jan 1 Jum Minggu 1 Minggu lalu di tahun sebelumnya Minggu lalu di tahun sebelumnya
Jan 2 Sat Minggu 1 Minggu lalu di tahun sebelumnya Minggu lalu di tahun sebelumnya
Jan 3 Matahari Minggu 2 Minggu 1 Minggu 1
Jan 4 Mon Minggu 2 Minggu 1 Minggu 1
Jan 5 Tue Minggu 2 Minggu 1 Minggu 1
Jan 6 Wed Minggu 2 Minggu 1 Minggu 1
Jan 7 Thu Minggu 2 Minggu 1 Minggu 1
Jan 8 Jum Minggu 2 Minggu 1 Minggu 1
Jan 9 Sat Minggu 2 Minggu 1 Minggu 1

Contoh berikut menggambarkan bagaimana CalendarWeekRule nilai dan DayOfWeek digunakan bersama-sama untuk menentukan bagaimana minggu ditetapkan. Dalam kalender Gregorian, hari pertama tahun ini (1 Januari) pada tahun 2013 jatuh pada hari Selasa. Jika hari pertama yang ditunjuk dalam seminggu adalah hari Minggu, Minggu pertama (6 Januari) adalah hari pertama minggu pertama tahun ini, dan Sabtu (5 Januari) termasuk dalam lima puluh minggu ketiga tahun sebelumnya. Mengubah aturan minggu kalender untuk FirstFourDayWeek mendefinisikan Selasa (1 Januari) sebagai awal minggu pertama tahun ini, karena ada lebih dari empat hari antara Selasa, 1 Januari, dan Minggu, 6 Januari. Menggunakan aturan ini, 5 Januari termasuk minggu pertama dalam setahun. Untuk 2010, setahun di mana 1 Januari jatuh pada hari Jumat, menerapkan FirstFourDayWeek aturan dengan DayOfWeek.Sunday sebagai hari pertama dalam seminggu membuat Minggu, 3 Januari awal minggu pertama tahun ini, karena minggu pertama pada tahun 2010 yang memiliki lebih dari empat hari adalah 3 Januari hingga 9 Januari.

using System;
using System.Globalization;

public class Example
{
   static Calendar cal = new GregorianCalendar();

   public static void Main()
   {
      DateTime date = new DateTime(2013, 1, 5);
      DayOfWeek firstDay = DayOfWeek.Sunday;
      CalendarWeekRule rule;

      rule = CalendarWeekRule.FirstFullWeek;
      ShowWeekNumber(date, rule, firstDay);

      rule = CalendarWeekRule.FirstFourDayWeek;
      ShowWeekNumber(date, rule, firstDay);

      Console.WriteLine();
      date = new DateTime(2010, 1, 3);
      ShowWeekNumber(date, rule, firstDay);
   }

   private static void ShowWeekNumber(DateTime dat, CalendarWeekRule rule,
                                      DayOfWeek firstDay)
   {
      Console.WriteLine("{0:d} with {1:F} rule and {2:F} as first day of week: week {3}",
                        dat, rule, firstDay, cal.GetWeekOfYear(dat, rule, firstDay));
   }
}
// The example displays the following output:
//       1/5/2013 with FirstFullWeek rule and Sunday as first day of week: week 53
//       1/5/2013 with FirstFourDayWeek rule and Sunday as first day of week: week 1
//
//       1/3/2010 with FirstFourDayWeek rule and Sunday as first day of week: week 1
Imports System.Globalization

Module Example
   
   Dim cal As New GregorianCalendar()
   
   Public Sub Main()
      Dim dat As Date = #01/05/2013#
      Dim firstDay As DayOfWeek = DayOfWeek.Sunday
      Dim rule As CalendarWeekRule
      
      rule = CalendarWeekRule.FirstFullWeek
      ShowWeekNumber(dat, rule, firstDay)
      
      rule = CalendarWeekRule.FirstFourDayWeek
      ShowWeekNumber(dat, rule, firstDay)

      Console.WriteLine()
      dat = #1/03/2010#
      ShowWeekNumber(dat, rule, firstDay)
   End Sub
   
   Private Sub ShowWeekNumber(dat As Date, rule As CalendarWeekRule, 
                              firstDay As DayOfWeek)
      Console.WriteLine("{0:d} with {1:F} rule and {2:F} as first day of week: week {3}",
                        dat, rule, firstDay, cal.GetWeekOfYear(dat, rule, firstDay))
   End Sub   
End Module
' The example displays the following output:
'       1/5/2013 with FirstFullWeek rule and Sunday as first day of week: week 53
'       1/5/2013 with FirstFourDayWeek rule and Sunday as first day of week: week 1
'       
'       1/3/2010 with FirstFourDayWeek rule and Sunday as first day of week: week 1

Catatan

Ini tidak memetakan persis ke ISO 8601. Perbedaan dibahas dalam entri blog format ISO 8601 Week of Year di Microsoft .NET. Dimulai dengan .NET Core 3.0, ISOWeek.GetYear dan ISOWeek.GetWeekOfYear selesaikan masalah ini.

Setiap CultureInfo objek mendukung sekumpulan kalender. Properti Calendar mengembalikan kalender default untuk budaya, dan OptionalCalendars properti mengembalikan array yang berisi semua kalender yang didukung oleh budaya. Untuk mengubah kalender yang CultureInfodigunakan oleh , atur Calendar properti ke CultureInfo.DateTimeFormat yang baru Calendar.

Berlaku untuk

Lihat juga