/**
将传入的小时和分钟 转换成当日的date
例如传入 8:00 的str 返回 2013-01-01 08:00 的nsdate
**/
-(NSDate *)CurrentDayTime:(NSString *)dataStr
{
//设置转换的format
NSDateFormatter *dateFormatter = [[[NSDateFormatteralloc]init]autorelease];
[dateFormatter setLocale:[NSLocalecurrentLocale]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
//获取当前年月日
NSDate *currentdate = [NSDatedate];
NSCalendar *calendar = [NSCalendarcurrentCalendar];
NSDateComponents *components = [calendarcomponents:(
NSYearCalendarUnit |
NSMonthCalendarUnit |
NSDayCalendarUnit |
NSHourCalendarUnit |
NSMinuteCalendarUnit
) fromDate:currentdate];
NSInteger year = [components year];
NSInteger month = [components month];
NSInteger day = [components day];
NSString *strDate = [NSString stringWithFormat:@"%d-%d-%d %@",year,month,day,dataStr];
NSDate *date = [dateFormatter dateFromString:strDate];
return date;
}
NSLog(@"%@\n%@",[selfCurrentDayTime:@"18:00"] ,[NSDatedate]);
NSDate *date = [NSDatedate];
if ([datecompare:[selfCurrentDayTime:@"18:00"]] ==NSOrderedDescending)
{
NSLog(@"date1 is later than date2");
} else if ([datecompare:[selfCurrentDayTime:@"18:00"]] ==NSOrderedAscending)
{
NSLog(@"date1 is earlier than date2");
} else
{
NSLog(@"dates are the same");
}
用法如下
-(BOOL)checkCanDinner
{
NSDate *currentDate = [NSDatedate];
if ([currentDate compare:[selfCurrentDayTime:@"08:59"]] == NSOrderedDescending //late
&& [currentDate compare:[selfCurrentDayTime:@"13:59"]] == NSOrderedAscending //early
)
{
//9:00-14:00 可以订餐
return YES;
}
else if([currentDatecompare:[self CurrentDayTime:@"09:00"]] ==NSOrderedAscending //early
&& [currentDate compare:[selfCurrentDayTime:@"00:00"]] == NSOrderedDescending//late
)
{
HFAlert(@"因较多餐厅休息,9:00之前掌上餐厅不接收订餐,为您带来的不便请谅解。");
return NO;
}
else if([currentDatecompare:[self CurrentDayTime:@"17:59"]] ==NSOrderedAscending //early
&& [currentDate compare:[selfCurrentDayTime:@"14:00"]] == NSOrderedDescending//late
)
{
HFAlert(@"因较多餐厅休息,14:00以后掌上餐厅仅接收晚餐订餐,为您带来的不便请谅解。");
return YES;
}
else if([currentDatecompare:[self CurrentDayTime:@"21:00"]] ==NSOrderedAscending //early
&& [currentDate compare:[selfCurrentDayTime:@"18:00"]] == NSOrderedDescending//late
)
{
//接受晚上的订单
return YES;
}
else if([currentDatecompare:[self CurrentDayTime:@"23:59"]] ==NSOrderedAscending //early
&& [currentDate compare:[selfCurrentDayTime:@"21:00"]] == NSOrderedDescending//late
)
{
HFAlert(@"因较多餐厅休息,21:00以后掌上餐厅不接收订餐,为您带来的不便请谅解。");
return NO;
}
return YES;
}