gpt4 book ai didi

objective-c - 获取当前日期的 NSDate - 3 个月

转载 作者:行者123 更新时间:2023-11-29 04:28:56 25 4
gpt4 key购买 nike

如何获取当前日期 - 3 个月?我需要它来进行数据库查询以获取过去 3 个月内的所有文件。

我知道“dateByAddingTimeInterval”操作,但我必须减去 3 个月。

最佳答案

取决于您如何定义 3 个月。如果你指的是 3 个月前的同一天,你可以这样做:

    NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSYearCalendarUnit |NSMonthCalendarUnit|NSDayCalendarUnit) fromDate:[NSDate date]];

NSInteger now_hour = [components hour];
NSInteger now_minute = [components minute];
NSInteger yearx = [components year];
NSInteger monthx = [components month];
NSInteger dayx = [components day];

//1 = january
NSInteger monthsMinus3 = (monthx > 3) ? monthx -3 : (monthx +12 -3);
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setMinute:now_minute];
[comps setHour:now_hour];
[comps setYear:yearx];
[comps setMonth:monthx];
[comps setDay:dayx];
NSDate *threeMonthAgo = [calendar dateFromComponents:comps];

当然,您也可以更改月份,而不必创建额外的日期,但我认为这更清晰、更灵活,如果您喜欢调试,也可以更改日期,如果您定义了 3 个月前-n 天,具体取决于我们所在的月份。例如 - (30+31+30) 或 -(31+30+31) 或必须考虑 2 月 28 天。

同样,一切都取决于您 3 个月前如何定义......但这应该会引导您找到解决方案

关于objective-c - 获取当前日期的 NSDate - 3 个月,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11974084/

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