在Swift中计算下一个发薪日

时间:2018-12-15 15:05:14

标签: swift math

我正在尝试在Swift中进行一些数学计算,并且有点卡住。

基本上,我们每个第4个星期五都收到工资,我想根据今天的日期进行计算,算出距下一个发薪日还有多少天。

我的参考日为“ 28/03/2008”,

1 个答案:

答案 0 :(得分:0)

要计算该月的下一个第四个星期五,您需要将右DateComponentsCalendar组合在一起。

// The 4th Friday at noon
let payDayComps = DateComponents(hour: 12, weekday: 6, weekdayOrdinal: 4)
// Given the current date, calculate the next 4th Friday at noon
let nextPayDay = Calendar.current.nextDate(after: Date(), matching: payDayComps, matchingPolicy: .nextTime)

如果您的目标是根据今天的日期获得下一个第四个星期五,则不需要此日期作为参考。如果您需要根据其他特定日期计算第4个星期五,请更改after参数的值。

如果此日期在一个月的第四个星期五运行,则如果在中午之前运行,它将返回今天的日期,如果在中午之后运行,它将返回下个月的第四个星期五。如果您想要不同的结果(例如payDayComps代表午夜),请更改0中的小时值。

要计算直到下一个发薪日的天数,您可以执行以下操作:

let daysToPayDay = Calendar.current.dateComponents([.day], from: Date(), to: nextPayDay).day!