Próbowałem następujących bezskutecznie:Jak mogę uzyskać liczbę dni w roku przy użyciu JodaTime?
new Period(Years.ONE).getDays();
new Period(1, 0, 0, 000).getDays();
Odpowiedź chcę oczywiście 365.
Próbowałem następujących bezskutecznie:Jak mogę uzyskać liczbę dni w roku przy użyciu JodaTime?
new Period(Years.ONE).getDays();
new Period(1, 0, 0, 000).getDays();
Odpowiedź chcę oczywiście 365.
Jeśli chcesz rzeczywistej liczby dni w danym roku:
int year = 2012;
LocalDate ld = new LocalDate(year,1,1);
System.out.println(Days.daysBetween(ld,ld.plusYears(1)).getDays());
oczywiście, to zwraca 365 lub 366 ... normalnie.
int year = 1582;
LocalDate ld = new LocalDate(year,1,1,GJChronology.getInstance());
System.out.println(Days.daysBetween(ld,ld.plusYears(1)).getDays());
// year 1582 had 355 days
Odpowiedź chcesz nie jest oczywiście 365
. Jest to 365
lub 366
, nie bierzesz pod uwagę lat przestępnych w swoim przykładzie.
Wykrywanie roku przestępnego i po prostu ciężkie kodowanie go potrójnym stwierdzeniem byłoby z jakiegoś powodu nie do przyjęcia?
final DateTime dt = new DateTime();
final int daysInYear = dt.year().isLeap() ? 366 : 365;
Oczywiście byłoby to daje liczbę dni w roku bieżącym, jak uzyskać liczbę dni, w innym roku jest trywialne i ćwiczenie dla czytelnika.
nowy DateTime() roku() .toInterval(). toDuration(). getStandardDays();
java.time.Year.of(2017).length()
Projekt Joda-Time, teraz w maintenance mode, doradza migrację do java.time klas.
Klasa java.time.Year
może reprezentować dowolny konkretny rok.
Year year = Year.of(2017);
można przesłuchać informacje na temat tego roku, takie jak jego długości w liczbie dni, czy to Leap Year czy nie.
int countDaysInYear = year.length() ;
boolean isLeapYear = year.isLeap() ; // ISO proleptic calendar system rules.
Ramy java.time jest wbudowana w Java 8 i późniejszych. Klasy te zastępują kłopotliwe stare klasy z datami, takie jak java.util.Date
, Calendar
, & SimpleDateFormat
.
Projekt Joda-Time, teraz w maintenance mode, zaleca migrację do klas java.time. Aby uzyskać więcej informacji, zobacz
. I wyszukaj Stack Overflow dla wielu przykładów i objaśnień. Specyfikacja to JSR 310.
Gdzie można uzyskać lekcje java.time?
Projekt ThreeTen-Extra rozciąga java.time z dodatkowych zajęć. Ten projekt jest poligonem wskazującym na możliwe przyszłe dodatki do java.time. Możesz znaleźć tutaj kilka użytecznych klas, takich jak Interval
, YearWeek
, YearQuarter
i more.
Powinno to również działać: '(nowa lokalna data (rok, 12, 31)). GetDayOfYear();' – jpstrube