iPhone:如何查找两个选定日期之间的日期?

发布于 2024-12-11 14:33:16 字数 342 浏览 0 评论 0原文

在我的应用程序中,我得到了两个日期。

例如,

第一次日期:2011 年 10 月 28 日

第二次日期:2011年11月2日

现在我想要这两个选定日期之间的所有日期。

所以应该是这样,

2011年10月28日

2011年10月29日

2011年10月30日

2011年11月1日

2011年11月2日

如何使用 NSDate 获取此信息?

In my app, I am getting two dates.

For Example,

1st Date : 28-10-2011

2nd Date : 2-11-2011

Now I want to all dates between this two selected date.

So it should be,

28-10-2011

29-10-2011

30-10-2011

1-11-2011

2-11-2011

How can I get this using NSDate?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小镇女孩 2024-12-18 14:33:16

尝试dateWithTimeInterval:SinceDate:

NSMutableArray dates = [NSMutableArray array];
NSDate *curDate = startDate;
while([curDate timeIntervalSince1970] <= [endDate timeIntervalSince1970]) //you can also use the earlier-method
{
    [dates addObject:curDate];
    curDate = [MSDate dateWithTimeInterval:86400 sinceDate:curDate]; 86400 = 60*60*24
}
//here maybe an additional check if the enddate has to be inserted or not

try dateWithTimeInterval:SinceDate:

NSMutableArray dates = [NSMutableArray array];
NSDate *curDate = startDate;
while([curDate timeIntervalSince1970] <= [endDate timeIntervalSince1970]) //you can also use the earlier-method
{
    [dates addObject:curDate];
    curDate = [MSDate dateWithTimeInterval:86400 sinceDate:curDate]; 86400 = 60*60*24
}
//here maybe an additional check if the enddate has to be inserted or not
¢蛋碎的人ぎ生 2024-12-18 14:33:16

看看NSDateComponentsdateByAddingComponents:toDate:options:,这就是我使用的并且效果很好。请务必留意闰年年份。

更新:我会使用托马斯的例子。它比我的效果更好,而且更容易阅读。

Look at NSDateComponents and dateByAddingComponents:toDate:options:, this is what I use and it works pretty good. Make sure to watch out for years that are leap years.

UPDATE: I would use thomas's example. It works better than mine and it is a lot easier to read.

一枫情书 2024-12-18 14:33:16

您可以使用 NSDateFormatter 将字符串转换为 NSDate 对象,然后使用 NSDate 的 ealierDate: 和 laterDate: 方法来比较它们。

You can convert your strings to NSDate objects using NSDateFormatter, then use NSDate's ealierDate: and laterDate: methods to compare them.

九歌凝 2024-12-18 14:33:16
NSDate *today = [NSDate date];
NSDate *startDate = [NSDate date];
NSDate  *endDate = [today addTimeInterval:10.0*60.0*60.0*24.0]; // end date 10 days ahead
while (YES) {

    startDate= [startDate addTimeInterval:1.0*60.0*60.0*24.0];
    NSLog(@"%@   --  %@",endDate,startDate);

    if([startDate compare:endDate]==NSOrderedDescending) break;
}
NSDate *today = [NSDate date];
NSDate *startDate = [NSDate date];
NSDate  *endDate = [today addTimeInterval:10.0*60.0*60.0*24.0]; // end date 10 days ahead
while (YES) {

    startDate= [startDate addTimeInterval:1.0*60.0*60.0*24.0];
    NSLog(@"%@   --  %@",endDate,startDate);

    if([startDate compare:endDate]==NSOrderedDescending) break;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文