我正在尝试检查当前时间之间是否有2个日期和时间。我已经完成了这个功能。这是函数
-(BOOL)getStartHour:(NSInteger)startHour getStartMin:(NSInteger)startMin getEndHour:
(NSInteger)endHour getEndMin:(NSInteger)endMin {
NSDate *now = [NSDate date];
NSDate *startOfToday;
[[NSCalendar currentCalendar] rangeOfUnit:NSDayCalendarUnit startDate:&startOfToday interval:NULL forDate:now];
NSDateComponents *startComps = [[NSDateComponents alloc] init];
startComps.weekday = 1;
startComps.hour = startHour;
startComps.minute = startMin;
//
NSDateComponents *endComps = [[NSDateComponents alloc] init];
endComps.hour = endHour;
endComps.minute = endMin;
endComps.weekday = 3;
NSDate *startDate = [[NSCalendar currentCalendar] dateByAddingComponents:startComps toDate:startOfToday options:0];
NSDate *endDate = [[NSCalendar currentCalendar] dateByAddingComponents:endComps toDate:startOfToday options:0];
NSLog(@"%d", [startComps weekday]);
// NSLog(@"%@", startDate);
// NSLog(@"%@", now);
if ([startDate timeIntervalSince1970] < [now timeIntervalSince1970] && [now timeIntervalSince1970] < [endDate timeIntervalSince1970]) {
return YES;
}
else return NO;
}
当我记录[startComps weekday]时,它会记录,但是今天是星期二,这对我没有意义。我想检查这个日期是否在星期一和星期三之间,我猜是1 - 3或0 - 2.但为什么今天(星期二)记录为0?
换句话说,我正在寻找dayOfWeek作为整数。星期一 - 1,星期二2等等
提前帮助他们。
答案 0 :(得分:0)
想一想:你不能将“星期二”添加到“现在”的日期。那是什么意思?下个星期二?上个星期二?或者,如果现在星期二是星期四,那么星期四是星期二是第二天的星期四,或星期五是第三天?
所以它记录0,因为在这种情况下实际上0代表什么都没有。 1是星期日,2星期一... 6星期六。
答案 1 :(得分:0)
if ([startDate timeIntervalSince1970] < [now timeIntervalSince1970] && [now timeIntervalSince1970] < [endDate timeIntervalSince1970]) {
return YES;
}
else return NO;
然后每天返回,
所以添加if语句
if weekday < day and day < weekend
return yes
答案 2 :(得分:-1)
+(BOOL)isDate:(NSDate*)date betweenStartDate:(NSDate*)startDate andEndDate:(NSDate*)endDate {
if (( ([startDate compare:date] == NSOrderedAscending || [startDate compare:date] == NSOrderedSame) ) && ([endDate compare:date] == NSOrderedDescending || [endDate compare:date] == NSOrderedSame)) {
return YES;
}
return NO;
}