gpt4 book ai didi

ios - 筛选日期早于今天的日期?

转载 作者:行者123 更新时间:2023-12-01 18:19:36 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个NSDate实例列表。在某一点上,我需要分开过去的日期,即[NSDate date](早于12点)
我使用了如下逻辑。我觉得必须有比这更好的逻辑,因此,如果有更好的解决方案,请帮助我。

我将date实例作为参数传递给此方法,该方法将返回与我的要求相对应的BOOL值。

-(BOOL)checkIfPast:(NSDate *)date
{
NSDate *today=[NSDate date];
NSUInteger dateFlags = NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit;
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components1=[gregorianCalendar components:dateFlags fromDate:today];
NSDateComponents *components2=[gregorianCalendar components:dateFlags fromDate:date];
if (components2.day-components1.day<0) {
return YES;
}
else
{
return NO;
}
}

最佳答案

BOOL checkIfTodayOrFuture(NSDate *date)
{
NSDate *now = [NSDate date];
NSUInteger dateFlags = NSCalendarUnitEra | NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorianCalendar components:dateFlags fromDate:now];
NSDate *midnight = [gregorianCalendar dateFromComponents:components];
return [date compare:midnight] == NSOrderedDescending;
}

如果您需要进行大量测试,请保留 midnight,然后在所有日期上都执行 compare:

请记住,结果不是恒定的。例如,用户可能会更改她的时区,因此“今天”的间隔也会更改。

关于ios - 筛选日期早于今天的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18445339/

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