Decimal date/time
Decimalized date time calculations
by kmturley
HTML
<table>
<thead>
<tr>
<td></td>
<td>UTC</td>
<td>Decimal</td>
</tr>
</thead>
<tbody>
<tr>
<td>Date String</td>
<td id="day"></td>
<td id="day_new"></td>
</tr>
<tr>
<td>Date</td>
<td id="date"></td>
<td id="date_new"></td>
</tr>
<tr>
<td>Time</td>
<td id="time"></td>
<td id="time_new"></td>
</tr>
</tbody>
</table>
CSS
table {
width: 100%;
}
thead {
font-weight: bold;
}
td {
width: 33.33%;
}
JavaScript
/**
* DecimalTime
* Universal decimal calendar and time system for the internet age
* by kmturley
*/
Date.prototype.getDecimalFullYear = function () {
return this.getUTCFullYear();
};
Date.prototype.getDecimalMonth = function () {
var startYear = new Date(this),
day = 0,
month = 0;
startYear.setUTCMonth(0);
startYear.setUTCDate(1);
day = Math.floor((this - startYear) / 8.64e7);
if (day > 36) { month = 1; }
if (day > 73) { month = 2; }
if (day > 109) { month = 3; }
if (day > 146) { month = 4; }
if (day > 182) { month = 5; }
if (day > 219) { month = 6; }
if (day > 255) { month = 7; }
if (day > 292) { month = 8; }
if (day > 328) { month = 9; }
return month;
};
Date.prototype.getDecimalDate = function () {
var startYear = new Date(this),
day = 0,
num = 0;
startYear.setUTCMonth(0);
startYear.setUTCDate(1);
day = Math.floor((this - startYear) / 8.64e7);
if (day > 36) { num += 36; }
if (day > 73) { num += 37; }
if (day > 109) { num += 36; }
if (day > 146) { num += 37; }
if (day > 182) { num += 36; }
if (day > 219) { num += 37; }
if (day > 255) { num += 36; }
if (day > 292) { num += 37; }
if (day > 328) { num += 36; }
return day - num;
};
Date.prototype.getDecimalDay = function () {
var startYear = new Date(this),
day = 0,
num = 0;
startYear.setUTCMonth(0);
startYear.setUTCDate(1);
day = Math.floor((this - startYear) / 8.64e7);
return day % 10;
};
Date.prototype.getDecimalHours = function () {
var startDay = new Date(this),
decMs = Math.round((this - startDay.setUTCHours(0, 0, 0, 0)) / 8.64e7 * 2.0e8);
return decMs / 10000000 | 0;
};
Date.prototype.getDecimalMinutes = function () {
var startDay = new Date(this),
decMs = Math.round((this - startDay.setUTCHours(0, 0, 0, 0)) / 8.64e7 * 2.0e8);
return decMs % 10000000 / 100000 |...