И так тоже можно с датами работать, наверное.
От: andrey.t  
Дата: 21.03.13 05:53
Оценка: :))) :))) :))) :))) :))) :))) :))
Откопал вот в одном проекте. Не знаю, как теперь назад закопать.

        public MyInternalDateClass extendDate(MyInternalDateClass date, int years) throws Exception {
            String existing = date.toString();
            int year = date.getYear() + years;
            String dateString = existing.replace(Integer.toString(date.getYear()), Integer.toString(year));

            return new MyInternalDateClass (dateString);
        }


Re[2]: И так тоже можно с датами работать, наверное.
От: DreamMaker  
Дата: 21.03.13 08:03
Оценка: +3
Здравствуйте, elmal, Вы писали:

E>А что там закапывать. Поиск по всему проекту на этот класс, замена на использование стандартной даты



как показывает практика, велик шанс что после такой замены что-то перестанет работать, ибо в кастомном классе в каком-нить невинном методе его гениальный архитектор заложил какой-нить side effect
In P=NP we trust.
Re[3]: И так тоже можно с датами работать, наверное.
От: BlackEric http://black-eric.lj.ru
Дата: 21.03.13 16:33
Оценка: +3
Здравствуйте, Kaifa, Вы писали:


AG>>29 февраля выстрелит


K>нет


Была дата 29.02.2012 + 1 год и получили 29.02.2013
https://github.com/BlackEric001
Re: И так тоже можно с датами работать, наверное.
От: Alexander G Украина  
Дата: 21.03.13 15:11
Оценка: 1 (1)
Здравствуйте, andrey.t, Вы писали:


existing.replace(Integer.toString(date.getYear()), Integer.toString(year));



29 февраля выстрелит
Русский военный корабль идёт ко дну!
Re[4]: И так тоже можно с датами работать, наверное.
От: Eugeny__ Украина  
Дата: 25.03.13 23:06
Оценка: 1 (1)
Здравствуйте, BlackEric, Вы писали:

AG>>>29 февраля выстрелит


K>>нет


BE>Была дата 29.02.2012 + 1 год и получили 29.02.2013


Кстати, не факт. Если строка далее парсится чем-нибудь стандартным(SimpleDateFormat, например), то 29.02.2013 станет 01.03.2013(там можно и 43 февраля вставить — оно станет соответствующим марта) — этот класс по-умолчанию лоялен к таким датам.
Но код жесть, да.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re: И так тоже можно с датами работать, наверное.
От: neFormal Россия  
Дата: 21.03.13 06:21
Оценка:
Здравствуйте, andrey.t, Вы писали:

AT>Откопал вот в одном проекте. Не знаю, как теперь назад закопать.


напомнило: http://code-wtf.livejournal.com/216613.html
...coding for chaos...
Re: И так тоже можно с датами работать, наверное.
От: elmal  
Дата: 21.03.13 06:28
Оценка:
Здравствуйте, andrey.t, Вы писали:

AT>Откопал вот в одном проекте. Не знаю, как теперь назад закопать.

А что там закапывать. Поиск по всему проекту на этот класс, замена на использование стандартной даты плюс где нужно форматировать по хитрому — там вызов форматтера. Правится элементарно. Если бы весь говнокод так легко исправлялся, была бы жизнь прекрасна.
Re[2]: И так тоже можно с датами работать, наверное.
От: Kaifa Россия  
Дата: 21.03.13 16:28
Оценка:
AG>29 февраля выстрелит

нет
Re[4]: И так тоже можно с датами работать, наверное.
От: Кодт Россия  
Дата: 21.03.13 20:29
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Была дата 29.02.2012 + 1 год и получили 29.02.2013


Ну, это мягкий и легко диагностируемый глюк. Еггоги, эксепшены и изумления пользователей вылезут незамедлительно.
А вот замена 29.02.2012 на 28.02.2013 либо 01.03.2013 по неизвестному закону в непредсказуемом месте может дорого обойтись.
Либо ±1 день превратится в ±тырнадцать процентов и тугриков, либо в недолёт-перелёт расписания, и всё такое прочее.
Эти вещи должны быть прописаны в техзадании, но, судя по говнокоду, вряд ли индус об этом не то что задумывался, но даже и подозревал.
Перекуём баги на фичи!
Re[5]: И так тоже можно с датами работать, наверное.
От: Alexander G Украина  
Дата: 22.03.13 06:25
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, BlackEric, Вы писали:


BE>>Была дата 29.02.2012 + 1 год и получили 29.02.2013


К>Ну, это мягкий и легко диагностируемый глюк. Еггоги, эксепшены и изумления пользователей вылезут незамедлительно.


Можно нафантазировать, что внутреннее представление даты там — строка, и что конструктор не проверяет с учётом того, что 29 февраля не в каждом году.
Таким образом, можно завести будильник на дату, которая никогда не наступит.
Русский военный корабль идёт ко дну!
Re[2]: И так тоже можно с датами работать, наверное.
От: Кондраций Россия  
Дата: 22.03.13 07:53
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>Здравствуйте, andrey.t, Вы писали:



AG>
existing.replace(Integer.toString(date.getYear()), Integer.toString(year));



AG>29 февраля выстрелит

Выстрелить в любой день может: "10.10.10", и год меняем на 11-й. Тот ещё выстрел из бесшумного пистолета будет.
Сообщение заговорено потомственным колдуном, целителем и магом в девятом поколении!
Модерирование или минусование сообщения ведет к половому бессилию, венерическим заболеваниям, венцу безбрачия и диарее!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.