• c# js日期工具


    c#获取日期当年最后一天:model.StartDate.AddYears(1).AddSeconds(-1)

    js日期工具:

    var dateToolObj = {
    methods: {
    //url为参数时被转义,还原真实URL
    htmlspecialchars_decode: function (str) {
    str = str.replace(/&/g, '&');
    str = str.replace(/&lt;/g, '<');
    str = str.replace(/&gt;/g, '>');
    str = str.replace(/&quot;/g, "''");
    str = str.replace(/&#039;/g, "'");
    return str;
    },

    /***
    * 得到本年的起止日期
    *
    */
    getCurrentYear: function () {
    //起止日期数组
    var startStop = new Array();
    //获取当前时间
    var currentDate = new Date();
    //获得当前年份4位年
    var currentYear = currentDate.getFullYear();

    //本年第一天
    var currentYearFirstDate = new Date(currentYear, 0, 1);
    //本年最后一天
    var currentYearLastDate = new Date(currentYear, 11, 31);
    //添加至数组
    startStop.push(currentYearFirstDate);
    startStop.push(currentYearLastDate);
    //返回
    return startStop;
    },

    /***
    * 获得本月的起止时间
    */
    getCurrentMonth: function () {
    //起止日期数组
    var startStop = new Array();
    //获取当前时间
    var currentDate = new Date();
    //获得当前月份0-11
    var currentMonth = currentDate.getMonth();
    //获得当前年份4位年
    var currentYear = currentDate.getFullYear();
    //求出本月第一天
    var firstDay = new Date(currentYear, currentMonth, 1);

    //当为12月的时候年份需要加1
    //月份需要更新为0 也就是下一年的第一个月
    if (currentMonth == 11) {
    currentYear++;
    currentMonth = 0; //就为
    } else {
    //否则只是月份增加,以便求的下一月的第一天
    currentMonth++;
    }

    //一天的毫秒数
    var millisecond = 1000 * 60 * 60 * 24;
    //下月的第一天
    var nextMonthDayOne = new Date(currentYear, currentMonth, 1);
    //求出上月的最后一天
    var lastDay = new Date(nextMonthDayOne.getTime() - millisecond);

    //添加至数组中返回
    startStop.push(firstDay);
    startStop.push(lastDay);
    //返回
    return startStop;
    },

    /**
    * 获得该月的天数
    * @param year年份
    * @param month月份
    * */
    getMonthDays: function (year, month) {
    //本月第一天 1-31
    var relativeDate = new Date(year, month, 1);
    //获得当前月份0-11
    var relativeMonth = relativeDate.getMonth();
    //获得当前年份4位年
    var relativeYear = relativeDate.getFullYear();

    //当为12月的时候年份需要加1
    //月份需要更新为0 也就是下一年的第一个月
    if (relativeMonth == 11) {
    relativeYear++;
    relativeMonth = 0;
    } else {
    //否则只是月份增加,以便求的下一月的第一天
    relativeMonth++;
    }
    //一天的毫秒数
    var millisecond = 1000 * 60 * 60 * 24;
    //下月的第一天
    var nextMonthDayOne = new Date(relativeYear, relativeMonth, 1);
    //返回得到上月的最后一天,也就是本月总天数
    return new Date(nextMonthDayOne.getTime() - millisecond).getDate();
    },

    /***
    * 获得本周起止时间
    */
    getCurrentWeek: function () {
    //起止日期数组
    var startStop = new Array();
    //获取当前时间
    var currentDate = new Date();
    //返回date是一周中的某一天
    var week = currentDate.getDay();
    //返回date是一个月中的某一天
    var month = currentDate.getDate();

    //一天的毫秒数
    var millisecond = 1000 * 60 * 60 * 24;
    //减去的天数
    var minusDay = week != 0 ? week - 1 : 6;
    //alert(minusDay);
    //本周 周一
    var monday = new Date(currentDate.getTime() - (minusDay * millisecond));
    //本周 周日
    var sunday = new Date(monday.getTime() + (6 * millisecond));
    //添加本周时间
    startStop.push(monday); //本周起始时间
    //添加本周最后一天时间
    startStop.push(sunday); //本周终止时间
    //返回
    return startStop;
    },
    getCurrentDay: function () {
    //起止日期数组
    var startStop = new Array();
    //获取当前时间
    var currentDate = new Date();
    var startDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 0, 0, 0);
    var endDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate(), 23, 59, 59);
    startStop.push(startDate); //本周起始时间
    //添加本周最后一天时间
    startStop.push(endDate); //本周终止时间
    //返回
    return startStop;
    },
    InizDate: function (s, e, u, callback) {
    u = htmlspecialchars_decode(u);
    //Date range picker
    $('#reservation').daterangepicker({
    'language': 'zn-ch',
    'locale': {
    'format': 'YYYY年MM月DD日',
    'applyLabel': '确定',
    'cancelLabel': '取消',
    'fromLabel': '开始',
    'toLabel': '结束',
    'monthNames': "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
    'daysOfWeek': "日_一_二_三_四_五_六".split("_"),
    },
    startDate: s,
    endDate: e
    });
    //Date range picker with time picker
    $('#reservationtime').daterangepicker({ timePicker: true, timePickerIncrement: 30, format: 'MM/DD/YYYY h:mm A' });
    //Date range as a button
    $('#daterange-btn').daterangepicker(
    {
    ranges: {
    'Today': [moment(), moment()],
    'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
    'Last 7 Days': [moment().subtract(6, 'days'), moment()],
    'Last 30 Days': [moment().subtract(29, 'days'), moment()],
    'This Month': [moment().startOf('month'), moment().endOf('month')],
    'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
    },
    startDate: moment().subtract(29, 'days'),
    endDate: moment()
    },
    function (start, end) {
    $('#daterange-btn span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));
    }
    );

    $("#dateSpan").text(Math.floor((new Date(e) - new Date(s)) / (24 * 3600 * 1000)) + 1 + "天");
    $("#reservation").on('hide.daterangepicker', function (e, d) {
    //当选择时间后,出发dt的重新加载数据的方法
    $("#dateSpan").text(Math.floor((d.endDate - d.startDate) / (24 * 3600 * 1000)) + 1 + "天");
    });
    $("#reservation").on('apply.daterangepicker', function (e, d) {
    if (callback) {
    var startDate = new Date(d.startDate.toLocaleString()).format("yyyy-MM-dd hh:mm:ss");
    var endDate = new Date(d.endDate.toLocaleString()).format("yyyy-MM-dd hh:mm:ss");
    callback(startDate, endDate, 1, 20, false);
    } else {
    if (u != "") {
    location.href = u + "&startDate=" + d.startDate._d.toLocaleString() + "&endDate=" + d.endDate._d.toLocaleString();
    }
    }
    });
    }
    },
    //日期,在原有日期基础上,增加minute分钟数,
    //默认增加0分,返回'yyyy-MM-dd hh:mm'格式的日期
    addMinute: function (dateSource, minute) {
    if (minute == undefined || minute == '') {
    minute = 0;
    }
    var date = new Date(dateSource);
    //date.setDate(date.getDate() + days);
    date.setMinutes(date.getMinutes() + minute);
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var hour = date.getHours();
    var minute = date.getMinutes();
    var mm = "'" + month + "'";
    var dd = "'" + day + "'";
    var hh = "'" + hour + "'";
    var mi = "'" + minute + "'";
    //单位数前面加0
    if (mm.length == 3) {
    month = "0" + month;
    }
    if (dd.length == 3) {
    day = "0" + day;
    }
    if (hh.length == 3) {
    hour = "0" + hour;
    }
    if (mi.length == 3) {
    minute = "0" + minute;
    }
    var time = date.getFullYear() + "-" + month + "-" + day + " " + hour + ":" + minute;
    return time;
    },
    //日期,在原有日期基础上,增加days天数,
    //默认增加0天,返回'yyyy-MM-dd'格式的日期
    addDate: function (dateSource, days) {
    if (days == undefined || days == '') {
    days = 0;
    }
    var date = new Date(dateSource);
    date.setDate(date.getDate() + days);
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var mm = "'" + month + "'";
    var dd = "'" + day + "'";
    //单位数前面加0
    if (mm.length == 3) {
    month = "0" + month;
    }
    if (dd.length == 3) {
    day = "0" + day;
    }
    var time = date.getFullYear() + "-" + month + "-" + day;
    return time;
    },
    //new DateTime().addMonths(months);返回 'yyyy-MM-dd'格式的日期;
    addMonth:function(months) {
    var dateResult = new Date();
    dateResult.setMonth(dateResult.getMonth() + months || 0);
    return dateToolObj.dateStr(dateResult.toDateString(), 'yyyy-MM-dd');
    },
    //sDate1和sDate2是【2017-12-18】格式的日期,返回相差的天数
    datedifference: function (sDate1, sDate2) {
    var dateSpan, tempDate, iDays;
    sDate1 = Date.parse(sDate1);
    sDate2 = Date.parse(sDate2);
    dateSpan = sDate2 - sDate1;
    dateSpan = Math.abs(dateSpan);
    iDays = Math.floor(dateSpan / (24 * 3600 * 1000));
    //iDays = Math.floor(dateSpan / (60 * 1000));
    return iDays;
    },
    //返回当前日期添加月数后,与当前日期的差值,天数差值
    getAddMonthDiff: function(months) {
    return dateTool.datedifference(new Date().format('yyyy-MM-dd'), dateTool.addMonth(months));
    },
    dayConvertMonthStr: function (days) {
    //先粗算,totaldays/30 取整,算出多少个月,再-1
    //计算起始、结束日期
    //差值天数 计算区间日期天数 (结束日期-起始日期)days
    //末位天数 = totaldays-差值天数,如果大于当前月份最后1天的日期,去计算当前月是否为大于末位天数,如果大于则月数进一位,否则计算为天数。
    var month = parseInt(days / 30);
    if (month > 1) {
    month -= 1;
    }
    var startDate = new Date().format('yyyy-MM-dd');
    var endDate = dateTool.addMonth(month);
    var totalDays = dateTool.datedifference(startDate, endDate);
    var calcDay = days - totalDays;
    if (calcDay > 0) {
    var curMonthDay = dateTool.getCurMonthLastDay();
    if (calcDay >= curMonthDay) {
    month += 1;
    //多出的天数 = 当前月末日-calcDay
    calcDay = calcDay - curMonthDay;
    if (calcDay > 0) {
    return month + "月" + calcDay + "天";
    } else {
    return month + "月";
    }
    } else if (calcDay < curMonthDay && month == 0) {
    return calcDay + "天";
    }
    return month + "月" + calcDay + "天";
    } else if (calcDay < 0) {
    return month + "月" + Math.abs(calcDay) + "天";
    } else {
    return month + "月";
    }
    },
    dateFormat: function (dateTime, format) {
    //return eval(dateTime.replace(//Date((d+))//gi, "new Date($1)")).format(format || 'yyyy-MM-dd');
    if (dateTime.search(//Date((d+))//gi) == 0) {
    dateTime = dateTime.replace(//Date((d+))//gi, "new Date($1)");
    return eval(dateTime).format(format || 'yyyy-MM-dd');
    }
    else {
    return dateTime;
    }
    },
    dateStr: function (dateTime, format) {
    return new Date(dateTime).format(format);
    },
    getMonthDay: function (year, month) {
    //return month's day
    var thisDate = new Date(year, month, 0);
    return thisDate.getDate();
    },
    getDateSetControl: function (dataType) {
    var startDate;
    var endDate;
    var nDays;
    if (dataType == "today") {
    var getCurrentStartDate = new Date();
    startDate = getCurrentStartDate.format("yyyy-MM-dd");
    endDate = getCurrentStartDate.format("yyyy-MM-dd");
    nDays = 1;
    }
    if (dataType == "week") {
    var dateWeek = dateTool.methods.getCurrentWeek();
    startDate = dateWeek[0].format("yyyy-MM-dd");
    endDate = dateWeek[1].format("yyyy-MM-dd");
    nDays = Math.abs(parseInt((dateWeek[0] - dateWeek[1]) / 1000 / 3600 / 24)) + 1;
    }
    if (dataType == "month") {
    var dateMonth = dateTool.methods.getCurrentMonth();
    startDate = dateMonth[0].format("yyyy-MM-dd");
    endDate = dateMonth[1].format("yyyy-MM-dd");
    nDays = Math.abs(parseInt((dateMonth[1] - dateMonth[0]) / 1000 / 3600 / 24)) + 1;
    }
    if (dataType == "") {
    var dateYear = dateTool.methods.getCurrentYear();
    startDate = dateYear[0].format("yyyy-MM-dd");
    endDate = dateYear[1].format("yyyy-MM-dd");
    nDays = Math.abs(parseInt((dateYear[1] - dateYear[0]) / 1000 / 3600 / 24)) + 1;
    }
    dateTool.methods.InizDate(startDate, endDate, "", null);
    $("#dateSpan").text(nDays + "天");
    },
    verifyDate: function () {
    var getDate = $(".jeinput").val();
    var regularDate = "^[0-9]{4}-(0?[0-9]|1[0-2])-(0?[1-9]|[12]?[0-9]|3[01])$";
    if (!getDate.match(regularDate)) {
    $(".jeinput").val("");
    toastr.error('请以:2018-01-01 这样的日期格式输入.');
    }
    },
    getCurMonthLastDay: function () {
    var date = new Date();
    var firstDay = new Date(date.getFullYear(), date.getMonth(), 1);
    var lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
    return parseInt(dateTool.dateStr(lastDay, 'dd'))||0;
    }
    };

  • 相关阅读:
    堆排序
    快速排序
    hpp头文件与h头文件的区别
    c++_ url
    C++11:POD数据类型
    Android 触摸手势基础 官方文档概览2
    札记:android手势识别,MotionEvent
    强迫自己学习(心态篇),国庆,你准备去哪疯?
    深入理解计算机系统(2.5)---二进制整数的加、减法运算(重要)
    深入理解计算机系统(2.4)---C语言的有符号与无符号、二进制整数的扩展与截断
  • 原文地址:https://www.cnblogs.com/zhangzixin/p/10564012.html
Copyright © 2020-2023  润新知