对于2001年到2099年的各年的十一国庆节和平年的元旦是星期几的公式如下;
20XX年 为 XX+[XX/4]=模化
比如 2017年 XX=17 [17/4]=[425]取整为4
17+4=21模化21/7 余0 星期日
这也是蔡勒公式第一部份是这百年定位十一星期,或称为年码。
各月一日的星期关系是;十一的星期加1是五一的星期,加2是八一,加3是三月,十一月一日的星期,加4是六月,加5是九,十二月,加六是四,七月,
平年元旦,国庆节星期相同,二月三月十一月星期相同。
闰年一月四月七月星期相同,二月与八月星期相同。
这也是蔡勒公式后部份代入后处理得到的具体数据。
可以从 DayOfWeek 或 DayOfWeek 属性中获取用于指示与某个特定日期相对应的星期几的枚举值。 与此不同的是,检索星期几名称是一项格式化 *** 作,可通过调用格式化方法来执行,例如日期和时间值的 ToString 方法或 StringFormat 方法。 本主题演示如何执行这些格式化 *** 作。 从特定日期中提取指示星期几的数字 如果要使用日期的字符串表示形式,请使用静态 DateTimeParse 或 DateTimeOffsetParse 方法将其转换为 DateTime 或 DateTimeOffset 值。 使用 DateTimeDayOfWeek 或 DateTimeOffsetDayOfWeek 属性检索指示星期几的 DayOfWeek 值。 如有必要,可将 DayOfWeek 值强制转换(在 C# 中)或转换(在 Visual Basic 中)为整数。 下面的示例将显示一个整数,用于表示日期字符串表示形式中的星期几。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueDayOfWeek) ' Displays 3 DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine((int) dateValueDayOfWeek); // Displays 3 从特定日期中提取缩写的星期几名称 如果要使用日期的字符串表示形式,请使用静态 DateTimeParse 或 DateTimeOffsetParse 方法将其转换为 DateTime 或 DateTimeOffset 值。 您可以提取当前区域性或特定区域性的缩写的星期几名称: 若要提取当前区域性的缩写的星期几名称,请调用日期和时间值的 DateTimeToString(String) 或 DateTimeOffsetToString(String) 实例方法,并以 format 参数的形式传递字符串“ddd”。 下面的示例阐释对 ToString(String) 方法的调用。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("ddd")) ' Displays Wed DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("ddd")); // Displays Wed 若要提取特定区域性的缩写的星期几名称,请调用日期和时间值的 DateTimeToString(String, IFormatProvider) 或 DateTimeOffsetToString(String, IFormatProvider) 实例方法。 同时以 format 参数形式传递字符串“ddd”, 并以provider 参数的形式传递表示要检索其星期几名称的区域性的 CultureInfo 或 DateTimeFormatInfo 对象。 下面的代码阐释如何使用表示 fr-FR 区域性的 CultureInfo 对象调用 ToString(String, IFormatProvider) 方法。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("ddd", _ New CultureInfo("fr-FR"))) ' Displays mer DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("ddd", new CultureInfo("fr-FR"))); // Displays mer 从特定日期中提取完整的星期几名称 如果要使用日期的字符串表示形式,请使用静态 DateTimeParse 或 DateTimeOffsetParse 方法将其转换为 DateTime 或 DateTimeOffset 值。 您可以提取当前区域性或特定区域性的完整的星期几名称: 若要提取当前区域性的完整的星期几名称,请调用日期和时间值的 DateTimeToString(String) 或 DateTimeOffsetToString(String) 实例方法,并以 format 参数的形式传递字符串“dddd”。 下面的示例阐释对 ToString(String) 方法的调用。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("dddd")) ' Displays Wednesday DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("dddd")); // Displays Wednesday 若要提取特定区域性的星期几名称,请调用日期和时间值的 DateTimeToString(String, IFormatProvider) 或 DateTimeOffsetToString(String, IFormatProvider) 实例方法。 同时以 format 参数的形式传递字符串“dddd”, 并以provider 参数的形式传递表示要检索其星期几名称的区域性的 CultureInfo 或 DateTimeFormatInfo 对象。 下面的代码阐释如何使用表示 es-ES 区域性的 CultureInfo 对象调用 ToString(String, IFormatProvider) 方法。 Dim dateValue As Date = #6/11/2008# ConsoleWriteLine(dateValueToString("dddd", _ New CultureInfo("es-ES"))) ' Displays miércoles DateTime dateValue = new DateTime(2008, 6, 11); ConsoleWriteLine(dateValueToString("dddd", new CultureInfo("es-ES"))); // Displays miércoles 示例 该示例阐释如何调用 DateTimeDayOfWeek 和 DateTimeOffsetDayOfWeek 属性以及 DateTimeToString 和 DateTimeOffsetToString 方法,以检索特定日期中表示星期几的数字、缩写的星期几名称和完整的星期几名称。 Dim dateString As String = "6/11/2007" Dim dateValue As Date Dim dateOffsetValue As DateTimeOffset Try Dim dateTimeFormats As DateTimeFormatInfo ' Convert date representation to a date value dateValue = DateParse(dateString, CultureInfoInvariantCulture) dateOffsetValue = New DateTimeOffset(dateValue, _ TimeZoneInfoLocalGetUtcOffset(dateValue)) ' Convert date representation to a number indicating the day of week ConsoleWriteLine(dateValueDayOfWeek) ConsoleWriteLine(dateOffsetValueDayOfWeek) ' Display abbreviated weekday name using current culture ConsoleWriteLine(dateValueToString("ddd")) ConsoleWriteLine(dateOffsetValueToString("ddd")) ' Display full weekday name using current culture ConsoleWriteLine(dateValueToString("dddd")) ConsoleWriteLine(dateOffsetValueToString("dddd")) ' Display abbreviated weekday name for de-DE culture ConsoleWriteLine(dateValueToString("ddd", New CultureInfo("de-DE"))) ConsoleWriteLine(dateOffsetValueToString("ddd", _ New CultureInfo("de-DE"))) ' Display abbreviated weekday name with de-DE DateTimeFormatInfo object dateTimeFormats = New CultureInfo("de-DE")DateTimeFormat ConsoleWriteLine(dateValueToString("ddd", dateTimeFormats)) ConsoleWriteLine(dateOffsetValueToString("ddd", dateTimeFormats)) ' Display full weekday name for fr-FR culture ConsoleWriteLine(dateValueToString("ddd", New CultureInfo("fr-FR"))) ConsoleWriteLine(dateOffsetValueToString("ddd", _ New CultureInfo("fr-FR"))) ' Display abbreviated weekday name with fr-FR DateTimeFormatInfo object dateTimeFormats = New CultureInfo("fr-FR")DateTimeFormat ConsoleWriteLine(dateValueToString("dddd", dateTimeFormats)) ConsoleWriteLine(dateOffsetValueToString("dddd", dateTimeFormats)) Catch e As FormatException ConsoleWriteLine("Unable to convert {0} to a date", dateString) End Try ' The example displays the following output to the console: ' 1 ' 1 ' Mon ' Mon ' Monday ' Monday ' Mo ' Mo ' Mo ' Mo ' lun ' lun ' lundi ' lundi string dateString = "6/11/2007"; DateTime dateValue; DateTimeOffset dateOffsetValue; try { DateTimeFormatInfo dateTimeFormats; // Convert date representation to a date value dateValue = DateTimeParse(dateString, CultureInfoInvariantCulture); dateOffsetValue = new DateTimeOffset(dateValue, TimeZoneInfoLocalGetUtcOffset(dateValue)); // Convert date representation to a number indicating the day of week ConsoleWriteLine((int) dateValueDayOfWeek); ConsoleWriteLine((int) dateOffsetValueDayOfWeek); // Display abbreviated weekday name using current culture ConsoleWriteLine(dateValueToString("ddd")); ConsoleWriteLine(dateOffsetValueToString("ddd")); // Display full weekday name using current culture ConsoleWriteLine(dateValueToString("dddd")); ConsoleWriteLine(dateOffsetValueToString("dddd")); // Display abbreviated weekday name for de-DE culture ConsoleWriteLine(dateValueToString("ddd", new CultureInfo("de-DE"))); ConsoleWriteLine(dateOffsetValueToString("ddd", new CultureInfo("de-DE"))); // Display abbreviated weekday name with de-DE DateTimeFormatInfo object dateTimeFormats = new CultureInfo("de-DE")DateTimeFormat; ConsoleWriteLine(dateValueToString("ddd", dateTimeFormats)); ConsoleWriteLine(dateOffsetValueToString("ddd", dateTimeFormats)); // Display full weekday name for fr-FR culture ConsoleWriteLine(dateValueToString("ddd", new CultureInfo("fr-FR"))); ConsoleWriteLine(dateOffsetValueToString("ddd", new CultureInfo("fr-FR"))); // Display abbreviated weekday name with fr-FR DateTimeFormatInfo object dateTimeFormats = new CultureInfo("fr-FR")DateTimeFormat; ConsoleWriteLine(dateValueToString("dddd", dateTimeFormats)); ConsoleWriteLine(dateOffsetValueToString("dddd", dateTimeFormats)); } catch (FormatException) { ConsoleWriteLine("Unable to convert {0} to a date", dateString); } // The example displays the following output to the console: // 1 // 1 // Mon // Mon // Monday // Monday // Mo // Mo // Mo // Mo // lun // lun // lundi // lundi 个别语言可能提供与 NET Framework 所提供的功能相同或互为补充的功能。 例如,Visual Basic 就包括这样的两个函数: Weekday,它返回指示特定日期中表示星期几的数字。 此函数将一周中第一天的序数值视为一,而 DateTimeDayOfWeek 属性却将其视为零。 WeekdayName,它返回当前区域性中与特定星期几相对应的周的名称。 下面的示例阐释 Visual Basic Weekday 和WeekdayName 函数的用法。 Dim dateValue As Date = #6/11/2008# ' Get weekday number using Visual Basic Weekday function ConsoleWriteLine(Weekday(dateValue)) ' Displays 4 ' Compare with NET DateTimeDayOfWeek property ConsoleWriteLine(dateValueDayOfWeek) ' Displays 3 ' Get weekday name using Weekday and WeekdayName functions ConsoleWriteLine(WeekdayName(Weekday(dateValue))) ' Displays Wednesday ' Change culture to de-DE Dim originalCulture As CultureInfo = ThreadCurrentThreadCurrentCulture ThreadCurrentThreadCurrentCulture = New CultureInfo("de-DE") ' Get weekday name using Weekday and WeekdayName functions ConsoleWriteLine(WeekdayName(Weekday(dateValue))) ' Displays Donnerstag ' Restore original culture ThreadCurrentThreadCurrentCulture = originalCulture 也可以使用 DateTimeDayOfWeek 属性返回的值检索特定日期的星期几名称。 此过程只需对 DayOfWeek 属性返回的值调用 ToString 方法。 但是,此技术并不生成当前区域性的本地化星期几名称,如下面的示例所示。 ' Change current culture to fr-FR Dim originalCulture As CultureInfo = ThreadCurrentThreadCurrentCulture ThreadCurrentThreadCurrentCulture = New CultureInfo("fr-FR") Dim dateValue As Date = #6/11/2008# ' Display the DayOfWeek string representation ConsoleWriteLine(dateValueDayOfWeekToString()) ' Displays Wednesday ' Restore original current culture ThreadCurrentThreadCurrentCulture = originalCulture // Change current culture to fr-FR CultureInfo originalCulture = ThreadCurrentThreadCurrentCulture; ThreadCurrentThreadCurrentCulture = new CultureInfo("fr-FR"); DateTime dateValue = new DateTime(2008, 6, 11); // Display the DayOfWeek string representation ConsoleWriteLine(dateValueDayOfWeekToString()); // Displays Wednesday // Restore original current culture ThreadCurrentThreadCurrentCulture = originalCulture; 编译代码 这些示例可能需要: 导入下列命名空间: SystemGlobalization 命名空间。 SystemThreading 命名空间,需要在编译 DayOfWeek 示例以及阐释 Weekday 和WeekdayName 函数的 Visual Basic 示例时使用。 这些示例还要求: 将对SystemCoredll 的引用添加到任何添加了代码示例的项目中。 请参见概念 执行格式设置 *** 作 标准日期和时间格式字符串 自定义日期和时间格式字符串
蔡勒(Zeller)公式,是一个计算星期的公式,用这个公式推算出是星期几。
w:星期;
w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪减1(年份前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日
[
]代表取整,即只要整数部分。
例如:中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1
=49+[1225]+5-40+[286]
=49+12+5-40+28
=54
(除以7余5)
即2049年10月1日(100周年国庆)是星期五。
以上就是关于如何根据日期计算该日期所对应的是星期几全部的内容,包括:如何根据日期计算该日期所对应的是星期几、如何:从特定日期中提取星期几、根据年月日算出星期几的公式是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)