iphone - 使用 NSCalendar——获取下个月的第一个星期二

标签 iphone objective-c nscalendar

这有点奇怪,但是否可以使用 NSCalendar(或任何组件,就此而言)来计算下一个“每月第一个星期二”的日期?

例如,今天是 2010 年 3 月 25 日,星期四。下一个“本月的第一个星期二”将是 4 月 6 日。同样,如果我在 4 月 1 日寻找下一个“本月的第一个星期二”,它仍然是 4 月 6 日。

你会怎么做?

非常感谢!!!!!!

最佳答案

下面的代码计算给定月份/年份组合的第一个星期二。它写在MacRuby因为那是我刚刚尝试过的,但是将它转换为正确的 Objective-C 应该没有问题,它只是一种不同的语法(我喜欢 MacRuby,因为它可以快速尝试一个想法):

dc = NSDateComponents.alloc.init
# Set month to April 2010
dc.setYear 2010
dc.setMonth 4

dc.setWeekday 3 # 1 = Sunday, 2 = Monday, ...
dc.setWeekdayOrdinal 1 # We want the first weekday of the month

cal = NSCalendar.alloc.initWithCalendarIdentifier NSGregorianCalendar
date = cal.dateFromComponents dc
date.description # => "2010-04-06 00:00:00 +0200"

我留给您确定从给定日期开始的“下一个第一个星期二”:首先对当前日期的月份进行计算,如果结果是过去的,则对下个月再次进行计算。使用 -[NSCalendar components:fromDate:] 获取给定 NSDate 的月/日组合。

关于iphone - 使用 NSCalendar——获取下个月的第一个星期二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516315/

相关文章:

iphone - 通过单击文本字段来选择日期

objective-c - 保留/分配内存管理

objective-c - 如何在 Xcode 4.2 上启用 Objective-C 异常?

xcode - DayInEra 的计算与 DayInYear 不一致

iphone - iOs 简单的你好,名称不起作用

ios - 如何获取返回 rgb、hex 值的图像像素? ios

iphone - 为 iOS 安装 Smiley 字体

objective-c - NSTableView reloadData 外部类

ios - 如何确定iOS中的第一周?

swift - 获取当前时间作为字符串 swift 3.0