首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NSMutableArray创建NSCalendar

使用NSMutableArray创建NSCalendar
EN

Stack Overflow用户
提问于 2010-10-28 13:46:25
回答 2查看 297关注 0票数 0

我有以下问题:我需要在特定日期之后的每个工作日创建一个NSMutabeArray。

这看起来应该是:

  • ,2010年10月28日星期四,
  • ,2010年10月4日星期四,
  • ,10月11日星期四

我怎么能这么做?我认为这与NSCalendar有关,但我找不到正确的解决办法.你能帮我一下吗?

提前谢谢你

FFraenz

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-28 15:18:42

这是一个无穷级数;NSMutableArray只能容纳有限的集合。

无论如何,你只需要一个成员的系列,如2010-10-28。在那之后的星期四,再加一个星期。要获得该系列中的第三个日期,请在第二个约会中添加一个星期,或者在第一个约会中添加两个星期。有了该系列的任何成员,您就可以访问该系列的任何其他成员。

如果您从一个不是正确工作日的日期开始,获取该日期的日期组件,将正确的工作日和它必须的工作日之间的差额添加到它的月份的日期,并将修改后的日期组件转换回一个日期。然后,这一日期将在同一周理想的工作日。

票数 0
EN

Stack Overflow用户

发布于 2010-10-28 14:45:34

有实际日期:

代码语言:javascript
复制
NSDate *today = [[NSDate alloc] init];

增加一周:

代码语言:javascript
复制
NSDate *nextDate = [today dateByAddingTimeInterval:60*60*24*7];

然后可以迭代并创建数组:

代码语言:javascript
复制
NSMutableArray* dates = [[NSMutableArray alloc] init];
NSDate *date= [[NSDate alloc] init];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setWeek:1];

for (int i=0;i<10;i++) {
  NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:date options:0];
  [dates addObject:date];
  [date release];
  date = nextDate;
}
[date release];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4043497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档