gpt4 book ai didi

objective-c - 检测 NSDate 是否包含周末

转载 作者:太空狗 更新时间:2023-10-30 03:17:22 26 4
gpt4 key购买 nike

我已将此类别添加到 NSDate:

- (bool)isWeekend
{
NSString* s = [self asString:@"e"];

if ([s isEqual:@"6"])
return YES;
else if ([s isEqual:@"7"])
return YES;
else
return NO;
}

辅助函数:

- (NSString*)asString:(NSString*)format
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:format];
NSString *formattedDateString = [dateFormatter stringFromDate:self];
[dateFormatter release];

return formattedDateString;
}
如果是周六或周日,

isWeekend 应该返回 YES。但如果语言环境的一周从星期日开始,则它不起作用,在这种情况下,星期五将是第 6 天,星期六将是第 7 天。

我该如何解决这个问题?

最佳答案

你想使用 NSCalendarNSDateComponents:

NSDate *aDate = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSRange weekdayRange = [calendar maximumRangeOfUnit:NSWeekdayCalendarUnit];
NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:aDate];
NSUInteger weekdayOfDate = [components weekday];

if (weekdayOfDate == weekdayRange.location || weekdayOfDate == weekdayRange.length) {
//the date falls somewhere on the first or last days of the week
NSLog(@"weekend!");
}

这是在一周的第一天和最后一天构成“周末”的假设下运行的(这对于公历是正确的。在其他日历中可能不是这样)。

关于objective-c - 检测 NSDate 是否包含周末,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5426122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com