javascript - How to fix number of days mismatching at the change of the year -


in this code,

var date1 = new date("1/1/2010");  var date2 = new date("12/31/2010");  var timediff1 = gettimediff(date1, date2);      var date3 = new date("1/1/2011");  var date4 = new date("12/31/2011");  var timediff2 = gettimediff(date3, date4);    var date5 = new date("1/1/2010");  var date6 = new date("12/31/2011");  var timediff3 = gettimediff(date5, date6);    var diffdays1 = getdiffdays(timediff1);  var diffdays2 = getdiffdays(timediff2);  var diffdays3 = getdiffdays(timediff3);    console.log('no. of days between ' + date1 + ' & ' + date2 + ' ' + diffdays1);  console.log('no. of days between ' + date3 + ' & ' + date4 + ' ' + diffdays2);    console.log('however,\nno. of days between ' + date5 + ' & ' + date6 + ' ' + diffdays3);    function getdiffdays(timediff) {    return math.ceil(timediff / (1000 * 3600 * 24));  }    function gettimediff(date1, date2) {    return math.abs(date2.gettime() - date1.gettime());  }

no. of days between jan 01 2010 & dec 31 2010 364

no. of days between jan 01 2011 & dec 31 2011 364

so, ideally number of days between jan 01 2010 & dec 31 2011 should 364 + 364 = 728

however,

no. of days between jan 01 2010 & dec 31 2011 729

how fix in production environment?

as may have noticed, code counting 364 days out of 365 year has. because new years eve not being counted. code counts "up to" not "including" last day of year.

from first day of 2010 (but not including) last day of 2010 there 364 days. first day of 2010 first day of 2011 there 365 (notice i'm saying when excluding last day count).

most count first day of addressed year, first day of next year, account every day in addressed year. notice that, said, you're counting days "between" dates. or else, might want include last day (changing between behavior)

check example code below see if meets needs:

var date1 = new date("1/1/2010");  var date2 = new date("12/31/2010 23:59");  var timediff1 = gettimediff(date1, date2);      var date3 = new date("1/1/2011");  var date4 = new date("12/31/2011 23:59");  var timediff2 = gettimediff(date3, date4);    var date5 = new date("1/1/2010");  var date6 = new date("12/31/2011 23:59");  var timediff3 = gettimediff(date5, date6);    var diffdays1 = getdiffdays(timediff1);  var diffdays2 = getdiffdays(timediff2);  var diffdays3 = getdiffdays(timediff3);    console.log('no. of days between ' + date1 + ' & ' + date2 + ' ' + diffdays1);  console.log('no. of days between ' + date3 + ' & ' + date4 + ' ' + diffdays2);    console.log('however,\nno. of days between ' + date5 + ' & ' + date6 + ' ' + diffdays3);    function getdiffdays(timediff) {    return math.ceil(timediff / (1000 * 3600 * 24));  }    function gettimediff(date1, date2) {    return math.abs(date2.gettime() - date1.gettime());  }


Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

javascript - jQuery UI Splitter/Resizable for unlimited amount of columns -

javascript - IE9 error '$'is not defined -