我正在尝试在Swift中进行一些数学计算,并且有点卡住。
基本上,我们每个第4个星期五都收到工资,我想根据今天的日期进行计算,算出距下一个发薪日还有多少天。
我的参考日为“ 28/03/2008”,
答案 0 :(得分:0)
要计算该月的下一个第四个星期五,您需要将右DateComponents
和Calendar
组合在一起。
// 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!