我想从工作日和年份获取日期。它工作并获得正确的输出。但是,当我更改CalendarIdentifier时,它将显示错误的输出。
这是我的代码
当我设置CalendarIdentifier时是NSGregorianCalendar
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:2013];
[components setWeek:2];
[components setWeekday:1];
NSDate *resultDate = [gregorian dateFromComponents:components];
output is :- 2013-01-05 18:30:00 +0000
当我更改CalendarIdentifier时是NSIndianCalendar
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSIndianCalendar];
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setYear:2013];
[components setWeek:2];
[components setWeekday:1];
NSDate *resultDate = [gregorian dateFromComponents:components];
Output is :- 2091-03-24 18:30:00 +0000
我做错了什么?...提前致谢..
修改
根据Midhun MP的回答,我的输出是正确的。
现在我的问题是如果我使用NSGregorianCalendar
输出为: - 2013-01-05 18:30:00 + 000000那天是星期六。
根据NSGregorianCalendar星期六是星期一开始,星期五是星期一结束。 我想找到类似的开始和结束,即星期一和印度的星期日或它是不同的??? 。
答案 0 :(得分:2)
输出正确。
印度历是格列高利历的78年。因此2013年印度历法在格里高利历中等于2091年。
印度历的第一个月也是公历的三月(三月)
2013 (Indian Calendar) + 78 = 2091 (Gregorian Calendar)
3 (March in Indian Calendar) + 2 = 5 (May in Gregorian Calendar)
同样,白天也有变化。
参考:Wikipedia