чото не получается решить задачку

iceman

говнокодер
На входе есть число N от 0 до 9 - последняя цифра года, например 2013->3, 2009->9, 2010->0
нужно по ней узнать год исходя из текущего года Y = 2013.
т.е. получается 2 параметра на входе N число и год Y.
суть в том, если текущий Y=2011, то при N=9 должны получить 2009, при N=1 => 2011

всяко есть математическое решение, которое я не могу догнать...

пысы массивы плиз не предлагать.
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
$diff = $year % 10 - $n;
$result = $year - ($diff < 0 ? 10 + $diff : $diff);

p.s. пздц! похапе программисты.
 

iceman

говнокодер
fixxxer, вообще, реализовываю не на пхп.
и вообще не хотелось бы год (date) превращать в число (integer). и использовать IF )

без условия как то так
Код:
result = Y - mod(mod(Y, 10) - N + 10, 10);
 
Последнее редактирование:

Тугай

Новичок
Протестируйте свои решения при Y=2009, а N=1
везде получается 2001, хотя по условию нужен ближайший т.е. 2011.

Текущий год Y нужно сравнивать с тремя числами оканчивающимися на N (в текущем десятилетие , прошлом и след) и ответ ближайшее.
 

iceman

говнокодер
Тугай, сорри не написал это в условии, нужно получить 2001, если текущий год 2009, т.е. 2011 еще не наступил.
гибдд так дату протокола шифрует, например число 3001, это 300 дней от начала года и 1 - последняя цифра года, если сейчас 2013, то значит это 2011 год, если сейчас 2023 год, то это 2021 =)

Вурдалак, Ваш тонкий юмор мне не понятен...
 

Andkorol

Новичок
гибдд так дату протокола шифрует, например число 3001, это 300 дней от начала года и 1 - последняя цифра года, если сейчас 2013, то значит это 2011 год, если сейчас 2023 год, то это 2021 =)
И как потом, в 2023-м, определить, в каком именно году был составлен такой протокол (с зашифрованной датой 3001) – в 2001-м, в 2011-м или 2021-м году..?
 

iceman

говнокодер
И как потом, в 2023-м, определить, в каком именно году был составлен такой протокол (с зашифрованной датой 3001) – в 2001-м, в 2011-м или 2021-м году..?
ну вроде через 3 года они аннулируются. оплатить не сможешь и смысла уже не будет.
 
Сверху