Рассчитать следующий день оплаты в Swift - PullRequest
0 голосов
/ 15 декабря 2018

Я пытаюсь сделать некоторые математические вычисления в Swift и немного застрять.

По сути, нам платят каждую четвертую пятницу, и я хочу сделать расчет, который основывается на сегодняшней дате, вычисляет, сколькодней до следующего расчетного дня.

У меня есть справочный день "28/03/2008",

1 Ответ

0 голосов
/ 15 декабря 2018

Чтобы рассчитать следующую четвертую пятницу месяца, вам нужна комбинация правых 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, если вам нужно рассчитать 4-ую пятницу на основе какой-либо другой конкретной даты.

Если это будет выполнено в 4-ую пятницу месяца, тогда будет возвращена сегодняшняя дата, если она была выполнена раньшеполдень, и он вернется в четвертую пятницу следующего месяца, если будет работать после полудня.Измените значение часа в payDayComps, если хотите получить другие результаты (например, 0 для полуночи).

Чтобы рассчитать количество дней до следующего платежного дня, вы можете сделать:

let daysToPayDay = Calendar.current.dateComponents([.day], from: Date(), to: nextPayDay).day!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...