YADO

Yet Another Date Object (self contained and frozen). Look mama, no this!

by KooiInc MeHere

HTML

<script src="//www.nicon.nl/genericsvc/fiddle/fiddlemeta.js"></script>

JavaScript

/**
  ----------
	 Outdated.
  ----------
*/

waitForHelper(start);

function start () {
Helper.log("test");
    var dat = xDate('now', 'EN'), print = Helper.log;
    
    print('Ă­nitial date: <b>', 
          String.Format(
              dat.format('WD MM d, yyyy, hh:mi ')+'</b><br>(raw) =&gt; {0}</b>', dat.get()
          )
         );
    print('<br>A few usage examples<br>', '-'.repeat(120));
    print('[Difference calculation]<br><code>dat.diffFrom(\'1991/08/27\')</code> =&gt;<br>',
          '<code>&nbsp;', 
          JSON.stringify(dat.diffFrom('1991/08/27')), '</code>');
    print('<code>dat.diffFrom(\'2015/08/27\')</code> =&gt;<br>',
          '<code>&nbsp;', 
          JSON.stringify(dat.diffFrom('2015/08/27')), '</code>');
    
    print('-'.repeat(120),'<br>','[Is date within a leap year?]');
    print('<code>xDate(\'now\').inLeapYear()</code>: ',xDate().inLeapYear());
    print('<code>xDate(\'2016/01/01\').inLeapYear()</code>: ',xDate('2016/01/01').inLeapYear());
    print('<code>xDate(\'2000/01/01\').inLeapYear()</code>: ',xDate('2000/01/01').inLeapYear());
    
    print('-'.repeat(120),'<br>','[Adding/subtracting]');
    print('<code>dat.add(3).get(1)</code>: ', dat.add(3).get(1));
    print('<code>dat.add(3, dat.units.years).get(1)</code>: ', 
          dat.add(3, dat.units.years).get(1));
    print('<code>dat.add(-5, \'Minutes\').get(1)</code>: ', dat.add(-5, 'Minutes').get(1));
    
    print('-'.repeat(120),'<br>',
          '[Retrieve all days in february 2016 (leap year)]<br><code>',
          'xDate(\'2016/02/14\').getMonth()</code>:<br>',
           xDate('2016/02/14').getMonth()
             .map(function (v){ return v.setLang('EN').format('WD, MM d');})
             .join('<br>'));
    
    function xDate(fordate, lang) {
        fordate           = new Date(fordate) || new Date();
        lang              = lang || 'NL';
        var dateX         = isNaN(fordate) ? new Date() : fordate,
            self          = {},
            nday ...