0

2 つの日付の差を取得しようとしていますが、日数で表示する必要があります。

NSLog(@"%@", [NSDate date]);

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/mm/yyyy"];

NSDate *formattedDate = [formatter dateFromString: [NSString stringWithFormat:@"31/05/2013"]];


NSDate *startDateForDays = [NSDate date];
NSDate *endDateForDays = formattedDate;

NSCalendar *gregorian = [[NSCalendar alloc]
                         initWithCalendarIdentifier:NSGregorianCalendar];

NSUInteger unitFlagsForDays = NSDayCalendarUnit;

NSDateComponents *componentsForDays = [gregorian components:unitFlagsForDays
                                                   fromDate:startDateForDays
                                                     toDate:endDateForDays options:0];

NSLog(@"%@", [NSString stringWithFormat:@"%i days until %@", [componentsForDays day], formattedDate]);

出力は次のようになります。

2013-05-29 20:21:51 +0000
118 days until 2013-01-30 23:05:00 +0000

私のコードの何が間違っているのかわかりません。助けていただければ幸いです。

4

2 に答える 2

1

これを試してみてください------------>

NSTimeInterval diff = [secondDate timeIntervalSinceDate:startDate];

于 2013-05-29T20:36:59.013 に答える
1

符号なし整数ビットを除外することで少し単純化できることを指摘するだけで、問題が解決したことに気づきました。

NSDateComponents *components = [gregorianCalendar components:NSDayCalendarUnit
                                                fromDate:startDate
                                                  toDate:endDate
                                                 options:0];

これは答えではなくコメントである必要がありますが、コメントできるはずなのにコメントできません。

于 2013-05-29T20:50:35.767 に答える