gpt4 book ai didi

objective-c - 计算夏令时后一天的 NSDate

转载 作者:行者123 更新时间:2023-11-28 20:28:48 26 4
gpt4 key购买 nike

我刚刚在我的一个应用程序中发现了一个 but;问题是我正在使用 initWithTimeIntervalSinceNow 计算菜单中的天数并添加计算 (day*X) (X 表示问题)。

但是,CEST 时区的 10 月 27 日到 28 日之间的晚上将变为 CET,这意味着一天的时间应按 (day*X)+3600 计算。但是,我不想使用 if 案例,并且相信应该有更好的方法来处理这个问题。

如何在考虑夏令时/冬令时的情况下计算 future 的天数?

我的代码:

    int day = (60*60*24);
NSDate *today = [NSDate date];
NSDate *days1 = [[NSDate alloc] initWithTimeIntervalSinceNow:day];
NSDate *days2 = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*2)];
NSDate *days3 = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*3)];
NSDate *days4 = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*4)];
NSDate *days5 = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*5)];
NSDate *days6 = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*6)];
NSDate *days7 = [[NSDate alloc] initWithTimeIntervalSinceNow:(day*7)];

最佳答案

试试这个:

- (NSDate *)dateByAddingXDaysFromToday:(int)days
{
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps.day = days;
return [[NSCalendar currentCalendar] dateByAddingComponents:comps toDate:[NSDate date] options:0];
}

然后你可以使用:

NSDate *days1 = [self dateByAddingXDaysFromToday:1];
//etc...

关于objective-c - 计算夏令时后一天的 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13058835/

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