0

私は4日間、つまり現在の日から次の3日間の予報を表示したいという点で、天気予報アプリをやっています。私は現在の日を取得しており、コードは

NSCalendar* cal = [NSCalendar currentCalendar];

NSDateComponents* comp = [cal components:NSWeekdayCalendarUnit fromDate:[NSDate date]];

 // 1 = Sunday, 2 = Monday, etc.

 NSInteger day0 = comp.weekday;

    NSLog(@"My DAY is %i", day0);


NSString *str;

NSMutableString *myString = [NSMutableString string];

str = [NSString stringWithFormat:@"%d",day0]; //%d or %i both is ok.

[myString appendString:str];

NSLog(@"My DAY is %@", myString);

そして、出力は 6 です。

現在の日をインクリメントせずに次の日を取得するにはどうすればよいですか...現在の日をインクリメントしようとしましたが、問題は、現在の日を7として取得すると、8にインクリメントされ、平日にはそのようなことはありません..私はxcodeの初心者です..助けてください....

4

2 に答える 2

0

次のことを試してください。

NSDateComponents *dayComponent = [NSDateComponents new];
dayComponent.day = 1;
today = [calendar dateByAddingComponents:dayComponent toDate:today options:0];
于 2012-11-30T08:23:29.100 に答える
0

「当日をインクリメントせずに次の日を取得するにはどうすればよいですか...」

毎日を表すNSDateオブジェクトが必要な場合は、NSDateComponentsを使用して次を合計できます。

NSDate *today = [NSDate date];
NSDateComponents *offset = [[NSDateComponents alloc] init];
offset.day = 1; // create a one day offset
NSDate *tomorrow = [[NSCalendar currentCalendar] dateByAddingComponents:offset toDate:today options:0];

次に、平日を取得します。

[[NSCalendar currentCalendar] components: NSWeekdayCalendarUnit fromDate:tomorrow];

「当日をインクリメントしようとしましたが、問題は、当日を7とすると、8にインクリメントされ、平日はそのようなことはないということです。」

今日の平日を増やすだけで十分な場合は、単純なモジュロを使用します(これはどのプログラミング言語でも基本的なことです)。

int weekdayOfTomorrow = (++weekdayOfToday % 7) + 1;
于 2012-11-30T08:25:06.397 に答える