1.忽略年月日,只根据小时分钟来判断是否在时间范围内:
//判断现在是不是白天 yes
-(BOOL)judgeDayAndNight
{
//获取当前时间
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
// 时间格式,建议大写 HH 使用 24 小时制;hh 12小时制
[dateFormat setDateFormat:@"HH:mm"];
NSString * todayStr=[dateFormat stringFromDate:today];//将日期转换成字符串
today=[ dateFormat dateFromString:todayStr];//转换成NSDate类型。日期置为方法默认日期
// strar 格式 "5:30" end: "19:08"
NSDate *start = [dateFormat dateFromString:start];
NSDate *expire = [dateFormat dateFromString:end];
if ([today compare:start] == NSOrderedDescending && [today compare:expire] == NSOrderedAscending) {
return YES;
}
return NO;
}
2.根据完整日期时间判断:
-(BOOL)judgeTimeByStartAndEnd { //获取当前时间 NSDate *today = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; // 时间格式,建议大写 HH 使用 24 小时制;hh 12小时制 [dateFormat setDateFormat:@"yyyy:mm:HH:mm"]; //start end 格式 "2016-05-18 9:00" NSDate *start = [dateFormat dateFromString:startStr]; NSDate *expire = [dateFormat dateFromString:endStr]; if ([today compare:start] == NSOrderedDescending && [today compare:expire] == NSOrderedAscending) { return YES; } return NO; }
有什么错误或建议,欢迎指教。