powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение лет в датах
9 сообщений из 9, страница 1 из 1
Сравнение лет в датах
    #39806269
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вот возникла потребность сравнить цифири лет в двух датах

Код: java
1.
2.
3.
4.
5.
DateTimeFormatter dtfrm = DateTimeFormatter.ofPattern("dd.MM.yyyy");
java.sql.Date dt1 = java.sql.Date.valuesOf(LocalDate.parse(request.getParameter("dt1").dtfrm));
java.sql.Date dt2 = java.sql.Date.valuesOf(LocalDate.parse(request.getParameter("dt2").dtfrm));

if (dt1.getYear()==dt2.getYear()) {


такой вариант не катит как устаревший,


зато канает вариант такой:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DateTimeFormatter dtfrm = DateTimeFormatter.ofPattern("dd.MM.yyyy");
java.sql.Date dt1 = java.sql.Date.valuesOf(LocalDate.parse(request.getParameter("dt1").dtfrm));
java.sql.Date dt2 = java.sql.Date.valuesOf(LocalDate.parse(request.getParameter("dt2").dtfrm));

Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1 = setTime(dt1);
cal2 = setTime(dt2);

if ((cal1.get(cal1.YEAR))==(cal2.get(cal2.YEAR))) {



теперь вопрос: нахрена вот городить такой огород с использованием дополнительного объекта и еще запихивать в его метод его же параметр (это вообще писец полный), чтобы сравнить части двух уже имеющихся дат? нафига вот сложности то такие, когда было всё просто? или я чего-то недопонял?
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806291
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Korcarтеперь вопрос: нахрена вот городить такой огород ...? или я чего-то недопонял?Мы смешиваете старое api (java.util) и новое (java.time), так делать не нужно - они оба самодостаточны. У LocalDate есть метод getYer()
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806305
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловKorcarтеперь вопрос: нахрена вот городить такой огород ...? или я чего-то недопонял?Мы смешиваете старое api (java.util) и новое (java.time), так делать не нужно - они оба самодостаточны. У LocalDate есть метод getYer()
у него вообще java.sql там, мне вот интересно где ТСы такие древние советы находят, на SO забанены чтоли?
Код: java
1.
2.
3.
LocalDate ldA = LocalDate.parse( inputA );
LocalDate ldB = LocalDate.parse( inputB );
long years= ChronoUnit.YEARS.between( ldA , ldB );
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806348
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никгде ТСы такие древние советы находят, на SO забанены чтоли?
он хотел сравнить даты на предмет одного и того же года, а не считать разницу в годах между двумя датами, но в главном ты прав
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806584
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никАндрей Панфиловпропущено...
Мы смешиваете старое api (java.util) и новое (java.time), так делать не нужно - они оба самодостаточны. У LocalDate есть метод getYer()
у него вообще java.sql там, мне вот интересно где ТСы такие древние советы находят, на SO забанены чтоли?
Код: java
1.
2.
3.
LocalDate ldA = LocalDate.parse( inputA );
LocalDate ldB = LocalDate.parse( inputB );
long years= ChronoUnit.YEARS.between( ldA , ldB );


друг у друга списывает, а ты как думал?)

LocalDate не запихивается в PreparedStatement в качестве параметра запроса

Код: java
1.
PreparedStatement.setDate(1, ldA);


Код: plaintext
The method setDate(int, Date) in the type PreparedStatement is not applicable for the arguments (int, LocalDate)
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806586
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если делать через setObject, то запрос отрабатывает, но условие по дате отсеивает все данные напрочь и те, что нужны и те, что не нужны
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806589
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл никАндрей Панфиловпропущено...
Мы смешиваете старое api (java.util) и новое (java.time), так делать не нужно - они оба самодостаточны. У LocalDate есть метод getYer()
у него вообще java.sql там, мне вот интересно где ТСы такие древние советы находят, на SO забанены чтоли?
Код: java
1.
2.
3.
LocalDate ldA = LocalDate.parse( inputA );
LocalDate ldB = LocalDate.parse( inputB );
long years= ChronoUnit.YEARS.between( ldA , ldB );


кстати, парсинг даты из параметра реквеста, который текст, без формата не проходит
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39806592
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KorcarLocalDate не запихивается в PreparedStatement в качестве параметра запросаЗдрасьте... драйвер же должен понимать, что такое java.time и должен, соответственно, его конвертировать в нужное представление и обратно, вот у ораклового драйвера названия ojdbc4, ojdbc5,... ojdbc8 какбы намекают с какой версией жавы его следует использовать
...
Рейтинг: 0 / 0
Сравнение лет в датах
    #39807532
Korcar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловKorcarLocalDate не запихивается в PreparedStatement в качестве параметра запросаЗдрасьте... драйвер же должен понимать, что такое java.time и должен, соответственно, его конвертировать в нужное представление и обратно, вот у ораклового драйвера названия ojdbc4, ojdbc5,... ojdbc8 какбы намекают с какой версией жавы его следует использовать
при чем тут драйвер? IDE пишет, что нифига такого метода нет, как setDate c параметром localdate

а с setObject не пойми как работало, а теперь стабильно просит указать sql type "Use setObject() with an explicit Types value to specify the type to use"
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сравнение лет в датах
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]