使用 Um al Qura 日历获取 C# DateTime 对象的日、月和年组件时遇到问题。
代码片段是:
DateTime date = new DateTime(2013, 6, 24);
UmAlQuraCalendar umAlQuraCalendar = new UmAlQuraCalendar();
int year = umAlQuraCalendar.GetYear(date);
int month = umAlQuraCalendar.GetMonth(date);
int day = umAlQuraCalendar.GetDayOfMonth(date);
运行后,年为 1434,月为 8,均正确。但是,第 14 天是错误的(根据此处:http ://www.al-habib.info/islamic-calendar/islamic-calendar-ummulqura-2013.htm )
如果我将代码更改为:
DateTime date = new DateTime(2013, 6, 24, 0, 0, 0, 1); // i.e. One millisecond after midnight
UmAlQuraCalendar umAlQuraCalendar = new UmAlQuraCalendar();
int year = umAlQuraCalendar.GetYear(date);
int month = umAlQuraCalendar.GetMonth(date);
int day = umAlQuraCalendar.GetDayOfMonth(date);
然后天是 15,这是正确的。
更奇怪的是,这段代码位于大型应用程序的深处:C# 代码是从 VB6 exe 调用的。
如果我将上面的第一个片段提取到一个独立的 C# 项目 (.NET 2.0) 中,那么 day 是 15,这是正确的。
我已经检查了我能想到的两个项目之间可能不同的所有内容:.NET 版本、平台目标 (x86),但看不到任何明显的东西。
任何想法都非常感谢。