Я хочу получить количество лет между двумя датами. Я могу получить количество дней между этими двумя днями, но если я разделю его на 365, результат будет неправильным, потому что в некоторых годах 366 дней.
Это мой код для получения разницы в датах:
var birthday = value;//format 01/02/1900
var dateParts = birthday.split("/");
var checkindate = new Date(dateParts[2], dateParts[0] - 1, dateParts[1]);
var now = new Date();
var difference = now - checkindate;
var days = difference / (1000*60*60*24);
var thisyear = new Date().getFullYear();
var birthyear = dateParts[2];
var number_of_long_years = 0;
for(var y=birthyear; y <= thisyear; y++){
if( (y % 4 == 0 && y % 100 == 0) || y % 400 == 0 ) {
number_of_long_years++;
}
}
Счетчик дней работает отлично. Я пытаюсь добавить дополнительные дни, когда это 366-дневный год, и я делаю что-то вроде этого:
var years = ((days)*(thisyear-birthyear))
/((number_of_long_years*366) + ((thisyear-birthyear-number_of_long_years)*365) );
Я подсчитал год. Это правильно, или есть лучший способ сделать это?