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 answer によると、私の出力は正しいです。今私の問題は、NSGregorianCalendar の
出力を使用している場合です。

NSGregorianCalendar によると、土曜日は週の始まり、金曜日は週の終わりです。インドの月曜と日曜など、同じような週の始まりと終わりを見つけたいですか、それとも違いますか ??? .

4

1 に答える 1

2

出力は正しいです。

インドのカレンダーは、グレゴリオ暦の 78 年後です。したがって、インド暦の 2013 年は、グレゴリオ暦の 2091 年に相当します。

また、インド暦の最初の月は、グレゴリオ暦の 3 月 (3 月) です。

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

同様に日替わりもあります。

参考:ウィキペディア

于 2013-07-04T06:03:59.940 に答える