当前位置:  开发笔记 > 编程语言 > 正文

如何查看一周中的哪一天(即周二,周五?)并比较两个NSDates?

如何解决《如何查看一周中的哪一天(即周二,周五?)并比较两个NSDates?》经验,为你挑选了2个好方法。

我正在做两件事:

    检查一周是否已经过去(基于一周中的哪一天)

    检查一天是否过去了(根据日期)

我不确定解决这个问题的最佳方法是什么,因为在比较两个NSDates时(一个在2009年1月1日21:30和另一个在2009年1月1日凌晨1点30分)我不能只看到如果已经过了24小时,那么在这种情况下它没有.我可以通过从NSDate获取日期1/1/09来解决这个问题,但我不确定如何根据我看到的文档和谷歌链接来做到这一点.

对于另一个问题,我不知道如何知道一周中哪一天给出了约会.我想如果1/1/09是星期二,星期一等等......是否有任何图书馆让你计算这个?这显然需要考虑到闰年和其他一些东西......也许有一个Objective-c库?

谢谢你的帮助!



1> Adam Rosenfi..:

您可以使用类的components:fromData:消息NSCalendar来获取各个日期组件:

// Sunday = 1, Saturday = 7
int weekday = [[[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit fromDate:theDate] weekday];

要比较两个日期,只需使用以下compare:消息:

switch([date1 compare:date2])
{
case NSOrderedSame:       /* they are the same date */ break;
case NSOrderedAscending:  /* date1 precedes date2 */ break;
case NSOrderedDescending: /* date2 precedes date1 */ break;
}



2> Can Berk Güd..:

你可以使用NSDateComponents这个:

unsigned units = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:units fromDate:date];

然后您可以访问日期的各个部分,如下所示:

[components year];
[components month];
[components day];

或者,你可以构造使用新的NSDate对象NSCalendardateFromComponents方法,和两个比较NSDate对象.

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有