javascript 计算当月当季当年的总天数和已过天数

function q(now, timePeriodType) {
    console.log('---------');
    console.log(now);
    console.log(timePeriodType);
    var time_process_value = 0;
    var time_process_total_value = 0;
    if (timePeriodType == '月') {            
        time_process_value = now.getDate() - 1;
        time_process_total_value = new Date(now.getFullYear(), now.getMonth()+1, 0).getDate();
    } else if (timePeriodType == '年') {
        var start = new Date(now.getFullYear(), 0, 1);
        var diff = now - start;
        var oneDay = 1000 * 60 * 60 * 24;
        time_process_value = Math.floor(diff / oneDay);
        var end = new Date(now.getFullYear()+1, 0, 1);
        var diffend = end - start;
        time_process_total_value = Math.floor(diffend / oneDay);
    } else if (timePeriodType == '季') {
        console.log('--季');
        var currentMonthIndex = now.getMonth(); // 从零开始
        var currentQuarterIndex = Math.floor(currentMonthIndex / 3); // 从零开始
        console.log('currentMonthIndex'+currentMonthIndex+'currentQuarterIndex'+currentQuarterIndex);
        var quarterBeginDate = new Date(now.getFullYear(), currentQuarterIndex*3, 1);
        var quarterEndDate = new Date(now.getFullYear(), (currentQuarterIndex+1)*3, 1);
        console.log(quarterBeginDate);
        console.log(quarterEndDate);
        var oneDay = 1000 * 60 * 60 * 24;
        var diff = now - quarterBeginDate;
        var diffend = quarterEndDate - quarterBeginDate
        time_process_value = Math.floor(diff / oneDay);
        time_process_total_value = Math.floor(diffend / oneDay);
    }
    console.log(time_process_value);
    console.log(time_process_total_value);
}
q(new Date(), '月');
q(new Date(), '季');
q(new Date(), '年');
q(new Date(2017, 0, 1), '月');
q(new Date(2017, 0, 1), '季');
q(new Date(2017, 0, 1), '年');
q(new Date(2017, 11, 31), '月');
q(new Date(2017, 11, 31), '季');
q(new Date(2017, 11, 31), '年');

Leave a Reply

Your email address will not be published. Required fields are marked *