Example #1
0
exports.testDiff = function() {
    var a = new Date(2010, 0, 1),
    b = new Date(2010, 0, 2);

    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 1);
    assert.equal(dates.diff(a, b, "hour"), 24);
    assert.equal(dates.diff(a, b, "minute"), 1440);
    assert.equal(dates.diff(a, b, "second"), 86400);
    assert.equal(dates.diff(a, b, "millisecond"), 86400000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 1,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // normal year
    b = new Date(2009, 0, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 12);
    assert.equal(dates.diff(a, b, "week"), 52);
    assert.equal(dates.diff(a, b, "day"), 365);
    assert.equal(dates.diff(a, b, "hour"), 8760);
    assert.equal(dates.diff(a, b, "minute"), 525600);
    assert.equal(dates.diff(a, b, "second"), 31536000);
    assert.equal(dates.diff(a, b, "millisecond"), 31536000000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 365,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // leap year
    a = new Date(2012, 0, 1);
    b = new Date(2013, 0, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 12);
    assert.equal(dates.diff(a, b, "week"), 52);
    assert.equal(dates.diff(a, b, "day"), 366);
    assert.equal(dates.diff(a, b, "hour"), 8784);
    assert.equal(dates.diff(a, b, "minute"), 527040);
    assert.equal(dates.diff(a, b, "second"), 31622400);
    assert.equal(dates.diff(a, b, "millisecond"), 31622400000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 366,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // one minute
    a = new Date(2012, 0, 1, 0, 1);
    b = new Date(2012, 0, 1, 0, 2);
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 0);
    assert.equal(dates.diff(a, b, "hour"), 0);
    assert.equal(dates.diff(a, b, "minute"), 1);
    assert.equal(dates.diff(a, b, "second"), 60);
    assert.equal(dates.diff(a, b, "millisecond"), 60000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 0,
        "hours": 0,
        "minutes": 1,
        "seconds": 0,
        "milliseconds": 0
    });

    // one millisecond
    a = new Date(1234567890);
    b = new Date(1234567891);
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 0);
    assert.equal(dates.diff(a, b, "hour"), 0);
    assert.equal(dates.diff(a, b, "minute"), 0);
    assert.equal(dates.diff(a, b, "second"), 0);
    assert.equal(dates.diff(a, b, "millisecond"), 1);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 0,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 1
    });

    // more tests (Einstein's life)
    a = new Date(1879, 2, 14);
    b = new Date(1955, 3, 18);
    assert.equal(dates.diff(a, b, "year"), 76);
    assert.equal(dates.diff(a, b, "quarter"), 305);
    assert.equal(dates.diff(a, b, "month"), 913);
    assert.equal(dates.diff(a, b, "week"), 3970);
    assert.equal(dates.diff(a, b, "day"), 27792);

    // again Einstein, now with time diff
    b = new Date(1955, 3, 18, 20, 39, 10, 53);
    assert.equal(dates.diff(a, b, "year"), 76);
    assert.equal(dates.diff(a, b, "quarter"), 305);
    assert.equal(dates.diff(a, b, "month"), 913);
    assert.equal(dates.diff(a, b, "week"), 3970);
    assert.equal(dates.diff(a, b, "day"), 27793);
};
Example #2
0
 assert.throws(function() {
     dates.diff(a, b, "")
 });
Example #3
0
exports.testDiff = function() {
    var a = new Date(2010, 0, 1),
    b = new Date(2010, 0, 2);

    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 1);
    assert.equal(dates.diff(a, b, "hour"), 24);
    assert.equal(dates.diff(a, b, "minute"), 1440);
    assert.equal(dates.diff(a, b, "second"), 86400);
    assert.equal(dates.diff(a, b, "millisecond"), 86400000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 1,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // normal year
    b = new Date(2009, 0, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 12);
    assert.equal(dates.diff(a, b, "week"), 52);
    assert.equal(dates.diff(a, b, "day"), 365);
    assert.equal(dates.diff(a, b, "hour"), 8760);
    assert.equal(dates.diff(a, b, "minute"), 525600);
    assert.equal(dates.diff(a, b, "second"), 31536000);
    assert.equal(dates.diff(a, b, "millisecond"), 31536000000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 365,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // leap year
    a = new Date(2012, 0, 1);
    b = new Date(2013, 0, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 12);
    assert.equal(dates.diff(a, b, "week"), 52);
    assert.equal(dates.diff(a, b, "day"), 366);
    assert.equal(dates.diff(a, b, "hour"), 8784);
    assert.equal(dates.diff(a, b, "minute"), 527040);
    assert.equal(dates.diff(a, b, "second"), 31622400);
    assert.equal(dates.diff(a, b, "millisecond"), 31622400000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 366,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // one minute
    a = new Date(2012, 0, 1, 0, 1);
    b = new Date(2012, 0, 1, 0, 2);
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 0);
    assert.equal(dates.diff(a, b, "hour"), 0);
    assert.equal(dates.diff(a, b, "minute"), 1);
    assert.equal(dates.diff(a, b, "second"), 60);
    assert.equal(dates.diff(a, b, "millisecond"), 60000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 0,
        "hours": 0,
        "minutes": 1,
        "seconds": 0,
        "milliseconds": 0
    });

    // one millisecond
    a = new Date(1234567890);
    b = new Date(1234567891);
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 0);
    assert.equal(dates.diff(a, b, "hour"), 0);
    assert.equal(dates.diff(a, b, "minute"), 0);
    assert.equal(dates.diff(a, b, "second"), 0);
    assert.equal(dates.diff(a, b, "millisecond"), 1);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 0,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 1
    });

    // 366 + 31 days = 397 days
    a = new Date(Date.UTC(2012, 0, 1));
    b = new Date(Date.UTC(2013, 1, 1));

    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 13);
    assert.equal(dates.diff(a, b, "week"), 56);
    assert.equal(dates.diff(a, b, "day"), 397);

    // again Einstein, now with time diff
    b = new Date(Date.UTC(2013, 1, 1, 20, 20, 20, 20));
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 13);
    assert.equal(dates.diff(a, b, "week"), 56);
    assert.equal(dates.diff(a, b, "day"), 397);
};
Example #4
0
exports.testDiff = function() {
    var a = new Date(2010, 0, 1),
    b = new Date(2010, 0, 2);

    assert.throws(function() {
        dates.diff(a, b, "yeard")
    });
    assert.throws(function() {
        dates.diff(a, b, "")
    });

    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b), 1);
    assert.equal(dates.diff(a, b, "day"), 1);
    assert.equal(dates.diff(a, b, "hour"), 24);
    assert.equal(dates.diff(a, b, "minute"), 1440);
    assert.equal(dates.diff(a, b, "second"), 86400);
    assert.equal(dates.diff(a, b, "millisecond"), 86400000);
    assert.equal(dates.diff(a, b, "years"), 0);
    assert.equal(dates.diff(a, b, "quarters"), 0);
    assert.equal(dates.diff(a, b, "months"), 0);
    assert.equal(dates.diff(a, b, "weeks"), 0);
    assert.equal(dates.diff(a, b, "days"), 1);
    assert.equal(dates.diff(a, b, "hours"), 24);
    assert.equal(dates.diff(a, b, "minutes"), 1440);
    assert.equal(dates.diff(a, b, "seconds"), 86400);
    assert.equal(dates.diff(a, b, "milliseconds"), 86400000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 1,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // normal year
    b = new Date(2009, 0, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 12);
    assert.equal(dates.diff(a, b, "week"), 52);
    assert.equal(dates.diff(a, b, "day"), 365);
    assert.equal(dates.diff(a, b, "hour"), 8760);
    assert.equal(dates.diff(a, b, "minute"), 525600);
    assert.equal(dates.diff(a, b, "second"), 31536000);
    assert.equal(dates.diff(a, b, "millisecond"), 31536000000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 365,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // leap year
    a = new Date(2012, 0, 1);
    b = new Date(2013, 0, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 12);
    assert.equal(dates.diff(a, b, "week"), 52);
    assert.equal(dates.diff(a, b, "day"), 366);
    assert.equal(dates.diff(a, b, "hour"), 8784);
    assert.equal(dates.diff(a, b, "minute"), 527040);
    assert.equal(dates.diff(a, b, "second"), 31622400);
    assert.equal(dates.diff(a, b, "millisecond"), 31622400000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 366,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 0
    });

    // one minute
    a = new Date(2012, 0, 1, 0, 1);
    b = new Date(2012, 0, 1, 0, 2);
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 0);
    assert.equal(dates.diff(a, b, "hour"), 0);
    assert.equal(dates.diff(a, b, "minute"), 1);
    assert.equal(dates.diff(a, b, "second"), 60);
    assert.equal(dates.diff(a, b, "millisecond"), 60000);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 0,
        "hours": 0,
        "minutes": 1,
        "seconds": 0,
        "milliseconds": 0
    });

    // one millisecond
    a = new Date(1234567890);
    b = new Date(1234567891);
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(a, b, "month"), 0);
    assert.equal(dates.diff(a, b, "week"), 0);
    assert.equal(dates.diff(a, b, "day"), 0);
    assert.equal(dates.diff(a, b, "hour"), 0);
    assert.equal(dates.diff(a, b, "minute"), 0);
    assert.equal(dates.diff(a, b, "second"), 0);
    assert.equal(dates.diff(a, b, "millisecond"), 1);
    assert.equal(dates.diff(a, b, "years"), 0);
    assert.equal(dates.diff(a, b, "quarters"), 0);
    assert.equal(dates.diff(a, b, "months"), 0);
    assert.equal(dates.diff(a, b, "weeks"), 0);
    assert.equal(dates.diff(a, b, "days"), 0);
    assert.equal(dates.diff(a, b, "hours"), 0);
    assert.equal(dates.diff(a, b, "minutes"), 0);
    assert.equal(dates.diff(a, b, "seconds"), 0);
    assert.equal(dates.diff(a, b, "milliseconds"), 1);
    assert.deepEqual(dates.diff(a, b, "mixed"), {
        "days": 0,
        "hours": 0,
        "minutes": 0,
        "seconds": 0,
        "milliseconds": 1
    });

    // 366 + 31 days = 397 days
    a = new Date(2012, 0, 1);
    b = new Date(2013, 1, 1);
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(a, b, "month"), 13);
    assert.equal(dates.diff(a, b, "week"), 56);
    assert.equal(dates.diff(a, b, "day"), 397);

    // no difference in quarters
    a = new Date(2013, 11, 1, 12, 0, 0); // Q4/2013
    b = new Date(2013, 9, 1, 12, 0, 0);  // Q4/2013
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(b, a, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 0);
    assert.equal(dates.diff(b, a, "quarter"), 0);

    // 3 quarter difference, same years
    a = new Date(2013, 2, 30); // Q1/2013
    b = new Date(2013, 9, 2);  // Q4/2013
    assert.equal(dates.diff(a, b, "year"), 0);
    assert.equal(dates.diff(b, a, "year"), 0);
    assert.equal(dates.diff(a, b, "quarter"), 3);
    assert.equal(dates.diff(b, a, "quarter"), 3);

    // 3 quarter difference, different years
    a = new Date(2013, 8, 30); // Q3/2013
    b = new Date(2014, 5, 30); // Q2/2013
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(b, a, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 3);
    assert.equal(dates.diff(b, a, "quarter"), 3);

    // 4 quarter difference, different years
    a = new Date(2012, 0, 1); // Q4/2012
    b = new Date(2013, 0, 1);  // Q1/2013
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(b, a, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 4);
    assert.equal(dates.diff(b, a, "quarter"), 4);

    // 1 quarter difference, different years
    a = new Date(2012, 11, 1); // Q4/2012
    b = new Date(2013, 0, 1);  // Q1/2013
    assert.equal(dates.diff(a, b, "year"), 1);
    assert.equal(dates.diff(b, a, "year"), 1);
    assert.equal(dates.diff(a, b, "quarter"), 1);
    assert.equal(dates.diff(b, a, "quarter"), 1);
};