gpt4 book ai didi

iphone - 我的时间增加 1 天

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

我有一种奇怪的情况,但这里是。我试图判断一次是否介于两次之间。我得到了工作。问题是,第二次将在第二天。例如,第一次是晚上 8 点,第二次是早上 8 点。问题是当我比较这两个时间时,计算机认为上午 8 点早于晚上 8 点。所以这是我的主要问题。我怎样才能做到第二天是第一天的后一天,或者某种意义上的明天。就像今天是第一次,第一次是晚上 8 点,第二次是早上 8 点。


编辑

到目前为止我的代码

NSDate *notificationDate = 
[NSDate dateWithTimeInterval:data.postureInterval sinceDate:[NSDate date]];

if([notificationDate compare:data.sleepModeBegin] == NSOrderedDescending &&
[notificationDate compare:data.sleepModeEnd] == NSOrderedAscending)
{
NSLog(@"IT works");
}

通知发生 = 晚上 8:30

data.sleepModeBegin = 晚上 8 点

data.sleepModeEnd = 早上 8 点

我想要它,以便它记录它的工作,但因为第二个是早上 8 点,它认为是那天早上,而我希望它是明天早上


编辑

我在 Martins 回答后的代码

NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:1];
NSDate *sleepEndTomorrow = [cal dateByAddingComponents:dateComponents toDate:data.sleepModeEnd options:0];

NSDate *notificationToHappen = [NSDate dateWithTimeInterval:data.postureInterval sinceDate:[NSDate date]];

NSLog(@"%@", notificationToHappen);
NSLog(@"%@", data.sleepModeBegin);
NSLog(@"%@", data.sleepModeEnd);
NSLog(@"%@", sleepEndTomorrow);
NSLog(@"%@", [NSDate date]);

if (([notificationToHappen compare:data.sleepModeBegin] == NSOrderedDescending) && ([notificationToHappen compare:sleepEndTomorrow] == NSOrderedAscending) ) {
NSLog(@"HEY");
}

第一个日期选择器设置在下午 3 点

第二个日期选择器设置在早上 8 点

输出是

2013-09-07 16:04:22.981 MyPosturePal[40145:a0b] 2013-09-07 20:15:22 +0000
2013-09-07 16:04:22.982 MyPosturePal[40145:a0b] 2013-09-06 19:00:41 +0000
2013-09-07 16:04:22.982 MyPosturePal[40145:a0b] 2013-09-06 12:00:41 +0000
2013-09-07 16:04:22.982 MyPosturePal[40145:a0b] 2013-09-07 12:00:41 +0000
2013-09-07 16:04:22.983 MyPosturePal[40145:a0b] 2013-09-07 20:04:22 +0000

最佳答案

NSDate 表示绝对时间点(包括日期)。 “仅时间”模式下的日期选择器返回所选时间和“当前日期”。

如果你想增加一天,使用NSCalendarNSDateComponents:

NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:1];
NSDate *sleepEndTomorrow = [cal dateByAddingComponents:dateComponents
toDate:sleepEndToday options:0];

关于iphone - 我的时间增加 1 天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675112/

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