0

我正在尝试从工作日和年份获取日期。它工作并获得正确的输出。但是当我更改 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 +0000 那天是星期六。

根据 NSGregorianCalendar,星期六是一周的开始,星期五是一周的结束。我想在印度找到类似的开始和结束时间,即周一和周日,还是不同???.

4

1 回答 1

2

输出是正确的。

印度历是公历的 78 年。所以印度历中的 2013 年等于公历中的 2091。

印度历的第一个月也是公历的第三个月(三月)

2013 (Indian Calendar)       + 78  = 2091 (Gregorian Calendar)
3 (March in Indian Calendar) + 2   = 5 (May in Gregorian Calendar)

同样,日子也有变化。

参考:维基百科

于 2013-07-04T06:03:59.940 回答