CalendarWeekRule Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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.