Добрый день!
Возник вопрос с результатом метода, который реализовал для расчета количества дней с 1 января 1970 года: countDays. Непонятно почему, но результат получается на 1 день больше.
Просьба помочь разобраться.
package com.javarush.task.pro.task16.task1607;
import java.time.LocalDate;
/*
Освоение нового API
*/
public class Solution {
public static void main(String[] args) {
System.out.println(nowExample());
System.out.println(ofExample());
System.out.println(ofYearDayExample());
System.out.println(ofEpochDayExample());
}
static LocalDate nowExample() {
//напишите тут ваш код
return LocalDate.now();
}
static LocalDate ofExample() {
//напишите тут ваш код
return LocalDate.of(2020,9,12);
}
static LocalDate ofYearDayExample() {
//напишите тут ваш код
return LocalDate.ofYearDay(2020,LocalDate.of(2020,9,12).getDayOfYear());
}
static LocalDate ofEpochDayExample() {
return LocalDate.ofEpochDay(countDays(LocalDate.of(2020,9,12)));
//напишите тут ваш код
}
static long countDays (LocalDate date){
int year = date.getYear();
long days = 0;
for(int i = 1970; i < year; i++){
days += LocalDate.of(i,12,31).getDayOfYear();
}
days += date.getDayOfYear();
return days;
}
}