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(/'/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;
}
};

c# js日期工具的更多相关文章

  1. JS 日期工具类-基于yDate

    源码下载 前言:最近在用到JS日期操作时,发现有一些不方便,于是搜素了一些网上的资料,基于一个开源工具类-yDate 进行了个性化定制,封装成了一个日期工具类工具函数大概介绍:1.普通的日期操作2. ...

  2. js日期工具

    /** * 日期工具类 */ define(function(require, exports, module) { var constants = require("constants&q ...

  3. JS日期工具类(转)

    javascript Date format(js日期格式化) https://www.cnblogs.com/zhangpengshou/archive/2012/07/19/2599053.htm ...

  4. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

  5. 我用的一些Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢. 2.做些小型项目用Sublime Text. 3.Browser ...

  6. Node.js开发工具、开发包、框架等总结

    开发工具 1.WebStorm,毫无疑问非他莫属,跨平台,强大的代码提示,支持Nodejs调试,此外还支持vi编辑模式,这点我很喜欢.2.做些小型项目用Sublime Text.3.Browserif ...

  7. Node.js 常用工具

    Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.inherits util.inherit ...

  8. java工具类-日期工具类

    1.获得时间戳 为了统一其他语言的如php和unix系统获取的时间戳是10位长度的,精确到秒. java时间戳长度是13位,精确到毫秒 我们获取时间戳需要相应处理. //获取当前时间戳,除以1000, ...

  9. Node.js 常用工具util包

    Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScript 的功能 过于精简的不足. util.isError(obj); util.is ...

随机推荐

  1. nginx响应码

    ngx.status = ngx.HTTP_CONTINUE (100) (first added in the v0.9.20 release)ngx.status = ngx.HTTP_SWITC ...

  2. Starting vsftpd for vsftpd: [FAILED]问题的解决

    问题描述 [root@bigdatamaster etc]# rpm -qa| grep vsftpd vsftpd--.el6.x86_64 [root@bigdatamaster etc]# [r ...

  3. css3中outline切换动画效果

    今天刚看了篇文章<纯CSS实现的outline切换transition动画效果> 里面的效果研究了一下,下图为实现时的效果 代码如下: <!DOCTYPE html> < ...

  4. Freemarker list的使用

    更新多条记录的操作,这里ids是一个数组 <sqltemplate id = "disableBuildLabourer"> <![CDATA[ UPDATE b ...

  5. Splunk和ELK深度对比

    转自:http://blog.51cto.com/splunkchina/1948105 日志处理两大生态Splunk和ELK深度对比 heijunmasd 0人评论 5312人阅读 2017-07- ...

  6. windows 下配置ndk环境,无需cygwin

    时隔好久要用ndk编译jni库,本以为配制安装cygwin环境,便按部就班的下载安装,但是公司的网速真的不给力,三天安装了三四次都没有安装成功(我选择的是在线安装),于是我便开始查ndk的官网看看,发 ...

  7. 跨平台 GUI可视化 网络调试工具

    mNetAssisthttp://blog.chinaunix.net/uid-21977056-id-4310527.htmlhttps://github.com/busyluo/mNetAssis ...

  8. Python基础学习总结(四)

    6.高阶特性 6.1迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration).在Python中,迭代是通过for ... ...

  9. 卸载或安装程序出现:The feature you are trying to use is on a network resource ...

    卸载或安装程序出现:The feature you are trying to use is on a network resource ... 这种情况可能是因为原先已经安装过这个软件,所以要先卸载 ...

  10. 二、redis的配置

    # redis 配置文件示例 # 当你需要为某个配置项指定内存大小的时候,必须要带上单位, # 通常的格式就是 1k 5gb 4m 等酱紫: # # 1k => 1000 bytes # 1kb ...