考虑一下这段简单的代码
var date = new DateTime(1307, 10, 13);
Console.WriteLine(date.DayOfWeek);
Run Code Online (Sandbox Code Playgroud)
它输出:
星期四
但,
维基百科(法语版本)说,这个日期是星期五:
旺德雷迪历史博物馆1307年10月13日
谁是对的?
我的猜测是.Net没有考虑到日历/公历更改。
Jon*_*eet 17
我的猜测是.Net没有考虑到儒略历/公历更改
实际上,正如所记录的(强调我的):
DateTime值类型表示日期和时间,其值从公历 9999年12月31日(公元)0001 Anno Domini(公共时代)00:00:00(午夜)到公元9999年12月31日晚上11:59:59。日历。
请注意,如果没有更多信息,就无法考虑朱利安(Julian)/格里高利安(Gregorian)过渡,因为这发生在不同地方的不同日期。
如果您知道要在儒略历中表示日期,建议您使用JulianCalendar该类。
using System;
using System.Globalization;
using static System.FormattableString;
public class Program
{
public static void Main()
{
var julianCalendar = new JulianCalendar();
var date = new DateTime(1307, 10, 13, julianCalendar);
Console.WriteLine(Invariant($"Gregorian: {date:yyyy-MM-dd}"));
Console.WriteLine(date.DayOfWeek);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Gregorian: 1307-10-21
Friday
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |