我想将不同时间的网点与 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 PM 结束时间 = 2:00 AM
然后在这种情况下,上面的代码失败,当 ipad 时钟在凌晨 1:00 时,第一个 if 条件失败,所以我在下面添加了这个代码
if (([CT compare:startTime]== NSOrderedAscending) && ([CT compare:endTime]== NSOrderedAscending))
{
}
现在作为开发人员,我确信如果设备在凌晨 1:00 计时,那么它不会失败,但是如果有人将插座计时更新为
开始时间 = 上午 9:00 结束时间 = 上午 11:00
和当前设备时间 = 8:00 AM
那么在上述情况下,我的第二个代码将失败。
我想要的是一些建议,例如在第二个 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 中的日期对象。