传递给DateTime类型的构造函数的日历对象的正确行为是什么?
我有如下示例的组件:年、月和日:
day = 1
month = 5
year = 1433 (which is the current Hijri year)使用以下代码创建datetime对象时,结果是一个有效的Greg Date
HijriCalendar hijri = new HijriCalendar();
//Get the First Day in the Month
DateTime firstDayInMonth = new DateTime(1433, month, 1, hijri);同时使用下面的代码生成一个有效的Hijri日期:
GregorianCalendar greg = new GregorianCalendar();
//Get the First Day in the Month
DateTime firstDayInMonth = new DateTime(1433, month, 1, greg);这是一个正确的结果吗?
发布于 2011-12-22 17:54:05
你的第一个例子是正确的。DateTime将不会是Hijri格式,它将只是您给它的标准化等价物。关于如何获取Hirji日期,请参见以下代码:
HijriCalendar hijri = new HijriCalendar();
DateTime firstDayInMonth = new DateTime(1433, 10, 11, hijri);
Console.WriteLine(hijri.GetEra(firstDayInMonth)); // 1
Console.WriteLine(hijri.GetYear(firstDayInMonth)); // 1433
Console.WriteLine(hijri.GetMonth(firstDayInMonth)); // 10
Console.WriteLine(hijri.GetDayOfMonth(firstDayInMonth)); // 11您的第二个代码块只是将公历日期设置为"1/1/1433“,所以当您检查它时,您得到的不是hirji日期,而是您在15世纪给出的日期。
查看http://msdn.microsoft.com/en-us/library/system.globalization.hijricalendar.aspx并查看其中的方法可以让您更好地了解应该在calendar对象上做什么,以及应该在DateTime对象上发生什么。
发布于 2011-12-22 17:42:07
你实际上并没有问一个有意义的问题。如果您正在尝试将一个给定的日期从一个日历转换为另一个日历,那么在Hijri日历与公历具有不同的月份之后,会有更多的日期发生变化。
看看这个site的例子--它甚至有可下载的代码。
https://stackoverflow.com/questions/8601725
复制相似问题