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. $bzoj1027-JSOI2007$ 合金 计算几何 最小环

    题面描述 某公司加工一种由铁.铝.锡组成的合金.他们的工作很简单.首先进口一些铁铝锡合金原材料,不同种类的原材料中铁铝锡的比重不同.然后,将每种原材料取出一定量,经过融解.混合,得到新的合金.新的合金 ...

  2. Unity中利用委托与监听解耦合的思路

    这篇随笔是一篇记录性的随笔,记录了从http://www.sikiedu.com/my/course/304,这门课程中学到的内容,附带了一些自己的思考. 一.单例模式的应用 首先假想一种情况,现在需 ...

  3. jQuery练习 | 复选框及编辑模式

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  4. mysql 必知必会总结

    以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...

  5. DBUtils工具类的使用

    DBUtils工具类1.DBUtils工具类,由apache组织提供的工具类,对JDBC做了一些简单封装. 做了查询的封装,把查询的结果封装到List集合 Map集合 JavaBean对象中 做了增删 ...

  6. WPF Window对象的生命周期

    WPF中所有窗口的基类型都是System.Windows.Window.Window通常用于SDI(SingleDocumentInterface).MDI(MultipleDocumentInter ...

  7. Golang教程:函数、变参函数

    函数是完成一个特定任务的代码块.一个函数接受输入,对输入进行一些运算并产生输出. 函数声明 在 Go 中声明一个函数的语法为: func functionname(parametername type ...

  8. nginx 代理转发 wcf接口

    前言 以前对比过enginx和其他几个web服务器(IIS,Apache,lighttpd)的处理静态文件的能力,enginx是最好的,甚至超过其他的几倍. 虽说enginx官方声明在Windows上 ...

  9. Gradle sync failed: Cause: org.gradle.logging.StyledTextOutput$Style Consult IDE log for more details

    环境 Android studio 3.0 导入开源中国: ... dependencies { //noinspection GradleDependency classpath 'com.andr ...

  10. git记住提交密码的技巧

    修改.git包里面的config文件,添加 [credential] helper = store