热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在NSDate中添加一些周?

如何解决《如何在NSDate中添加一些周?》经验,为你挑选了2个好方法。

我过去使用以下函数来使用NSDateComponents现有日期添加特定时间间隔.

(NSDate *)dateByAddingComponents:(NSDateComponents *)comps
                          toDate:(NSDate *)date
                         options:(NSCalendarOptions)opts

从iOS8开始,不推荐使用周值NSDateComponents,这意味着我无法实现我想要做的事情:NSDate通过向给定数量添加特定周数来生成新值NSDate.

任何帮助将不胜感激.



1> zaph..:

只需使用weekOfYear:

Apple文档NSDateComponents week:

弃用语句
使用weekOfYear或weekOfMonth,具体取决于您的意图.

NSDate *date = [NSDate date];
NSDateComponents *comp = [NSDateComponents new];
comp.weekOfYear = 3;
NSDate *date1 = [[NSCalendar currentCalendar] dateByAddingComponents:comp toDate:date options:0];
NSLog(@"date:  %@", date);
NSLog(@"date1: %@", date1);

输出:

     
date:  2015-01-13 04:06:26 +0000  
date1: 2015-02-03 04:06:26 +0000

如果你使用,week你得到这个警告:

'周'已弃用:首先弃用... - 使用weekOfMonth或weekOfYear,具体取决于您的意思

当使用weekOfMonthweekOfYear作为delta时,它们的工作方式相同.它们不同的地方在于它们被用来获得星期数,在那里您将获得6个星期或一年中53周的星期.



2> Lyndsey Scot..:

更新:正如Zaph在回答中所说,Apple实际上建议使用weekOfYearweekOfMonth代替我提供的答案.查看Zaph的答案以获取详细信息.


你可能会很快意识到你正在过度思考它,但是这里有一些方法可以为一个日期添加一定的周数,即使周价值已被弃用,例如:

NSDateComponents *comp = [NSDateComponents new];
int numberOfDaysInAWeek = 7;
int weeks = 3; // <-- this example adds 3 weeks
comp.day = weeks * numberOfDaysInAWeek;

NSDate *date = [[NSCalendar currentCalendar] dateByAddingComponents:comp toDate:date options:0];


推荐阅读
author-avatar
崔显莉京_716
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有