var DateUtil ={};
/*正しい日付チェック*/
DateUtil.checkDate = function(date) {
    
    if (date.match(/[^0-9]/g) != null) {
        return false;        
    }
    
    var y = parseInt(date.slice(0, 4));
    var m = parseInt(date.slice(4, 6), 10);
    var d = parseInt(date.slice(6, 8), 10);

    var di = new Date(y,m-1,d);
    if(di.getFullYear() == y && di.getMonth() == m-1 && di.getDate() == d){
        return true;
    }
    return false;
}

/*正しい時間チェック*/
DateUtil.checkTime = function(tm) {
    
    if (tm.match(/[^0-9]/g) != null) {
        return false;        
    }
    
    var tmH = tm.substr(0, 2);
    var tmM = tm.substr(2, 2);               
    if (parseInt(tmH) < 0 || parseInt(tmH) > 23 
        || parseInt(tmM) < 0 || parseInt(tmM) > 59) {
        return false;
    }
    return true;
}

/*現在日付を取得する*/
DateUtil.getNowDate = function() {
    
    var objDate = new Date();
    var y = objDate.getFullYear();
    var m = (objDate.getMonth() + 1);
    var d = objDate.getDate();
    if (m < 10) m = '0' + m;
    if (d < 10) d = '0' + d;
    
    return String(y) + String(m) + String(d);
    
}

/*現在時間を取得する*/
DateUtil.getNowTime = function() {
    
    var objDate = new Date();
    var h = objDate.getHours();
    var m = objDate.getMinutes();
    
    if (h < 10) h = '0' + h;
    if (m < 10) m = '0' + m;
    
    return String(h) + String(m);
    
}

/*何日後の日付を計算する*/
DateUtil.calDate = function(date, addDays) {

    var y = parseInt(date.slice(0, 4));
    var m = parseInt(date.slice(4, 6), 10);
    var d = parseInt(date.slice(6, 8), 10);
        
    var dt = new Date(y, m - 1, d);
    var baseSec = dt.getTime();
    var addSec = addDays * 86400000;
    var targetSec = baseSec + addSec;
    dt.setTime(targetSec);

    var calYear = dt.getFullYear();
    var calMonth = (dt.getMonth() + 1);
    var calDate = dt.getDate();
    
    if (calMonth < 10) calMonth = '0' + calMonth;
    if (calDate < 10) calDate = '0' + calDate;
    
    return String(calYear) + String(calMonth) + String(calDate);
    
}

/*何月後の日付を計算する*/
DateUtil.calMonth = function(date, addMonths) {
    
    var y = parseInt(date.slice(0, 4));
    var m = parseInt(date.slice(4, 6), 10);
    var d = parseInt(date.slice(6, 8), 10);

    m += addMonths;
    var endDay = DateUtil._getMonthEndDay(y, m);
    if(d > endDay) d = endDay;
    var dt = new Date(y, m - 1, d);

    var calYear = dt.getFullYear();
    var calMonth = (dt.getMonth() + 1);
    var calDate = dt.getDate();
    
    if (calMonth < 10) calMonth = '0' + calMonth;
    if (calDate < 10) calDate = '0' + calDate;
    
    return String(calYear) + String(calMonth) + String(calDate);
    
}

/*月末求める*/
DateUtil._getMonthEndDay = function(year, month) {
    var dt = new Date(year, month, 0);
    return dt.getDate();
}

DateUtil.getDayofWeek = function(date) {
    
    var y = parseInt(date.slice(0, 4));
    var m = parseInt(date.slice(4, 6), 10);
    var d = parseInt(date.slice(6, 8), 10);
    
    var week = new Array("日", "月", "火", "水", "木", "金", "土");
    
    var dt = new Date(y, m - 1, d);
    var dayOfWeek = week[dt.getDay()];
       
    return dayOfWeek;
    
}





