Я чувствую, что это математическая проблема больше всего на свете. У моей компании есть сотрудники по всей стране. Некоторые части компании находятся в «нечетном» цикле оплаты, а некоторые - «ровные». Я называю начальную дату данного периода оплаты «периодом погашения». Мне нужно сделать две вещи:Как я могу получить правильный payperiod с даты?
1) определяют расчётного, в котором данная дата выпадает
//Something like this:
public static DateTime getPayPeriodStartDate(DateTime givenDate, string EvenOrOdd)
{ .. }
2) получить список payperiods между двумя датами:
//Something like this:
public static List<DateTime> getPayPeriodsBetween(DateTime start, DateTime end, string EvenOrOdd)
{ .. }
Я используя пару дат в качестве фиксированных стандартов, на которых основываются любые даты будущих периодов оплаты. Фиксированные стандартные сроки для четных и нечетных следующим образом:
- Даже - 01/04/09
- Odd - 01/11/09
Каждый платить период начинается на воскресенье неделю и идет на две недели. Например, используя стандартные даты выше, первый даже период оплаты начинается с 01.04.09 и заканчивается 01/17/09. Первый нечетный период оплаты начинается с 01/11/09 и заканчивается 01/24/09. Как вы можете видеть, есть некоторые совпадения. У нас есть тысячи сотрудников, поэтому их нужно немного разбить.
У меня есть решение, основанное на числе недель, но оно неуклюже и должно быть «исправлено» каждый новый год. Мне интересно, как вы справитесь с этим.
Можете ли вы объяснить фиксированные стандартные даты (нечетные/четные) немного больше. – David
Я читаю это, как и начинается в первое воскресенье года, а Одд начинается во второе воскресенье года? (спасибо @Rubens) – user7116
Я обновил его немного, чтобы лучше объяснить. –