gpt4 book ai didi

iphone - Objective-C - 从今天(明天)开始的第二天

转载 作者:IT王子 更新时间:2023-10-29 08:04:37 28 4
gpt4 key购买 nike

我如何检查日期是否本质上是明天?

我不想在像今天这样的日期上添加小时数或任何内容,因为如果今天已经是 22:59,添加太多会影响到后天,添加太少如果时间是 12:00 明天就会错过。

我如何检查两个 NSDate 并确保一个对另一个来说相当于明天?

最佳答案

使用 NSDateComponents您可以从代表今天的日期中提取日/月/年组件,忽略小时/分钟/秒组件,添加一天,并重建一个对应于明天的日期。

所以想象一下,您想要在当前日期上精确添加一天(包括保持小时/分钟/秒信息与“现在”日期相同),您可以将 24*60*60 秒的时间间隔添加到“现在” "使用 dateWithTimeIntervalSinceNow,但最好(和 DST 证明等)使用 NSDateComponents 这样做:

NSDateComponents* deltaComps = [[[NSDateComponents alloc] init] autorelease];
[deltaComps setDay:1];
NSDate* tomorrow = [[NSCalendar currentCalendar] dateByAddingComponents:deltaComps toDate:[NSDate date] options:0];

但是如果你想生成对应于明天午夜的日期,你可以改为只检索代表现在的日期的月/日/年组成部分,没有小时/分钟/secs 部分,并添加 1 天,然后重建一个日期:

// Decompose the date corresponding to "now" into Year+Month+Day components
NSUInteger units = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay;
NSDateComponents *comps = [[NSCalendar currentCalendar] components:units fromDate:[NSDate date]];
// Add one day
comps.day = comps.day + 1; // no worries: even if it is the end of the month it will wrap to the next month, see doc
// Recompose a new date, without any time information (so this will be at midnight)
NSDate *tomorrowMidnight = [[NSCalendar currentCalendar] dateFromComponents:comps];

P.S.:您可以在 Date and Time Programming Guide 中阅读有关日期概念的非常有用的建议和内容。 , 特别是 here about date components .

关于iphone - Objective-C - 从今天(明天)开始的第二天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681989/

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