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 |...