You are here: irt.org | FAQ | JavaScript | Date | Q808 [ previous next ]
Try something like:
<SCRIPT LANGUAGE="JavaScript"><!-- function makeArray() { this[0] = makeArray.arguments.length; for (i = 0; i<makeArray.arguments.length; i++) this[i+1] = makeArray.arguments[i]; } var accumulate = new makeArray(0, 31, 59, 90,120,151,181,212,243,273,304,334); var accumulateLY = new makeArray(0, 31, 60, 91,121,152,182,213,244,274,305,335); function LeapYear(year) { if ((year/4) != Math.floor(year/4)) return false; if ((year/100) != Math.floor(year/100)) return true; if ((year/400) != Math.floor(year/400)) return false; return true; } function pad(number,length) { var str = '' + number; while (str.length < length) str = '0' + str; return str; } function getJulianDay(year,month,day) { if (LeapYear(year)) return pad(day + accumulateLY[month],3); else return pad(day + accumulate[month],3); } function yy_to_ccyy(yy) { // convert year in yy format to ccyy format return (yy < 70) ? '20' + pad(yy,2) : '19' + yy; } var myDate = '000229'; // 29th February 2000 var year = yy_to_ccyy(myDate.substring(0,2) - 0); var month = myDate.substring(2,4) - 0; var day = myDate.substring(4,6) - 0; var julianDate = '' + year + getJulianDay(year,month,day); alert(julianDate); //--></SCRIPT>