Я делаю некоторые вычисления даты в Java, используя миллисекунды. У меня нет большого опыта работы с миллисекундами, и я не могу даже определить, сколько миллисекунд в год. Вот моя попытка:Java Миллисекунды в году
private static final int MILLIS_IN_SECOND = 1000;
private static final int SECONDS_IN_MINUTE = 60;
private static final int MINUTES_IN_HOUR = 60;
private static final int HOURS_IN_DAY = 24;
private static final int DAYS_IN_YEAR = 365; //I know this value is more like 365.24...
private static final long MILLISECONDS_IN_YEAR = MILLIS_IN_SECOND * SECONDS_IN_MINUTE * MINUTES_IN_HOUR * HOURS_IN_DAY * DAYS_IN_YEAR;
System.out.println(MILLISECONDS_IN_YEAR); //Returns 1471228928
Я знаю, что 1 год = 31556952000 миллисекунды, поэтому мое умножение выключен каким-то образом.
Может ли кто-нибудь указать, что я делаю неправильно? Должен ли я использовать длинный?
Почему бы просто не попробовать? Или посмотрите, какое максимальное значение имеет 32-разрядное целое число со знаком? –
@Dave Newton Я пробовал, и код возвращает значение, которое, как я знаю, неверно. Int работает в миллисекундах в год, однако я вычисляю неправильное значение. –
Предположительно високосные годы не имеют значения ... –