code: function SimpleDate(){
      this._monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
      this._monthNamesShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
  
      var tempDate = new Date();
      this.setYear(tempDate.getFullYear());
      this.setMonth(tempDate.getMonth());
      this.setDate(tempDate.getDate());
  
      if(arguments[0] != null) {
          if (arguments[0] instanceof Date) {
              tempDate = arguments[0];
  
              this.setYear(tempDate.getFullYear());
              this.setMonth(tempDate.getMonth());
              this.setDate(tempDate.getDate());
          } else if(arguments[0] instanceof SimpleDate) {
              this.setYear(arguments[0].getYear());
              this.setMonth(arguments[0].getMonth());
              this.setDate(arguments[0].getDate());
          } else if(arguments[0] instanceof Object) {
              var obj = arguments[0];
              if(obj.year != null && obj.month != null && obj.date != null) {
                  this.setYear(obj.year);
                  this.setMonth(obj.month);
                  this.setDate(obj.date);
              } else {
                  this.setYear(tempDate.getFullYear());
                  this.setMonth(tempDate.getMonth());
                  this.setDate(tempDate.getDate());
              }
          }else {
              try {
                  this.setYear(parseInt(arguments[0]));
                  this.setMonth(parseInt(arguments[1]));
                  this.setDate(parseInt(arguments[2]));
              }catch(e) {
                  this.setYear(tempDate.getFullYear());
                  this.setMonth(tempDate.getMonth());
                  this.setDate(tempDate.getDate());
              }
          }
      }
  }
docs: Created by Ben on 7/17/2015.