2016-11-04 6 views
-1

Я новичок в Java и должен переводить скрипт Python с помощью datetime в Java-программу. Как создать объект Calendar на Java, который может иметь любой возможный год, месяц и день, например. 03.12.2050. Я должен иметь возможность добавить к нему определенное количество дней - например, 03.12.2050 + 29 дней, чтобы получить 01.01.2051 - Как я могу это сделать на Java?Java-календарь похож на Python datetime

Было бы полезно, но не обязательно, если бы класс календаря мог представлять юлианские даты.

ответ

0

Вы должны рассмотреть вопрос об использовании java.time API (введен в Java 8) - это намного лучше и проще в использовании, чем наследие Календарь API.

Применительно к вашему примеру, это будет выглядеть так:

LocalDate d1 = LocalDate.of(2050, 12, 3); 
LocalDate d2 = d1.plusDays(29); // 2051-01-01 

Он также поддерживает Julian days, но не по юлианскому календарю, который доступен в threeten-extras.

0

Вы проверили GregorianCalendar?

GregorianCalendar g = new GregorianCalendar(12,12,1994); 
g.add(GregorianCalendar.YEAR,2); 
+0

по какой-то причине я не нашел это ... спасибо, что все, что мне нужно ... документация очень трудно читать ... как мне вернуть месяц этой даты? И есть ли возможность создать юлианскую дату? – Blood

+0

Вы можете использовать метод getTime(), который возвращает объект [Date] (https://docs.oracle.com/javase/7/docs/api/java/util/Date.html). Оттуда вы можете извлекать дни, месяц или год (но тезисы являются устаревшими методами) – slayne

+0

'code'a = new GregorianCalendar (2000,11,12); a.add (GregorianCalendar.DAY_OF_MONTH, 30); System.out.println (a.get (GregorianCalendar.DAY_OF_MONTH)); System.out.println (a.get (GregorianCalendar.MONTH)); System.out.println (a.get (GregorianCalendar.YEAR)); 'code', почему изменение между месяцами не работает? (или только иногда) – Blood