コンセントの異なる時間をiPadの現在の時間と比較したいので、私がしたことはこれでした
if(CT!=nil && startTime!=nil &&endTime!=nil)
{
/* If current time is greater than begin time but less than end time then he can give feedack
*/
if (([CT compare:startTime]== NSOrderedDescending) && ([CT compare:endTime]== NSOrderedAscending) ) {
return YES;
}
else if (([CT compare:startTime]== NSOrderedSame) || ([CT compare:endTime]== NSOrderedSame))
{
return YES;
}
else if (([CT compare:startTime]== NSOrderedDescending) && ([CT compare:endTime]== NSOrderedDescending))
{
return NO; // out of outlet timings
}
これは今までうまく機能しているようですが、アウトレット時間を変更すると
開始時間 = 午後 18 時 30 分 終了時間 = 午前 2 時
その場合、上記のコードが失敗し、iPad が午前 1:00 に時計を合わせると、最初の if 条件が失敗するため、このコードを以下に追加しました
if (([CT compare:startTime]== NSOrderedAscending) && ([CT compare:endTime]== NSOrderedAscending))
{
}
開発者として、デバイスのクロックが午前 1:00 の場合は失敗しないと確信していますが、誰かがコンセントのタイミングを
開始時間 = 午前 9:00 終了時間 = 午前 11:00
現在のデバイス時間 = 8:00 AM
上記の場合、2番目のコードは失敗します。
私が欲しいのは、2番目のif条件でできることのような提案です
CT を作成するコードは次のとおりです。
NSDate *sysDate = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc]init];
[df setDateFormat:@"HH:mm:ss"];
NSString *timeString = [df stringFromDate:sysDate];
NSDate *CT = [df dateFromString:timeString];
startTime と endTime は、plist に格納されている日付オブジェクトです。