gpt4 book ai didi

ios - Objective-C ,比较两个日期

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

我正在尝试比较两个日期,但我根本看不出它是如何工作的......

这是我正在使用的代码:

   NSCalendar* myCalendar = [NSCalendar currentCalendar];
NSDateComponents* components = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit

fromDate:[NSDate date]];
[components setYear:2012];
[components setMonth:03];
[components setDay:25];
NSDate *startDate = [myCalendar dateFromComponents:components];


NSDateComponents* components2 = [myCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit

fromDate:[NSDate date]];
[components2 setYear:2012];
[components2 setMonth:04];
[components2 setDay:25];
NSDate *endDate = [myCalendar dateFromComponents:components];

NSComparisonResult result1 = [now compare:startDate];
NSComparisonResult result2 = [now compare:endDate];

if (result2 &&

result1
) {
int x =1;
}

问题是即使这两个日期在未来,我仍然可以进入 if 条件...任何原因?

最佳答案

result1 和 result2 的值是以下之一。

enum {
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;

唯一一次 (result2 && result1) 不会返回 true 是当其中一个评估为 false 或 0 时。只有当其中一个日期与现在完全相同时才会发生这种情况。

if (result1 == NSOrderedAscending) {
// result1 is in the future
}

if (result1 == NSOrderedDescending) {
// result1 is in the past
}

关于ios - Objective-C ,比较两个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9318167/

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