js:合同-已知起始日期、年限,自动计算截止日期

dateAddYear(‘2016-01-01‘, ‘3‘) ;//返回:2018-12-31

浏览器:ie11,ff 46.0.1(成功)360v8.1(急速模式,成功)

浏览器:360v8.1(兼容模式,失败)

一。代码:

//date: 日期字符串yyyy-MM-dd,如:2016-02-14
//years:年份,正整数字符串
//返回日期字符串yyyy-MM-dd,如:2016-02-14
function dateAddYear(date, years) {
var now = new Date(date);
var intYear = now.getFullYear() + parseInt(years);
var intMonth = now.getMonth() + 1; //正常的月份,
var intDay = now.getDate() - 1; //日期-1
if (intDay == 0) {
intMonth--; //减少一个月
if (intMonth == 0) {
intYear--; //0:减少一年
intMonth = 12;
intDay = 31;
}
else if (intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) {
intDay = 30; //4,6,9,11:30天
}
else if (intMonth == 2) {
intDay = 28; //2:28/29
if (intYear % 4 == 0) {
intDay = 29;
}
} else {
intDay = 31; //1,3,5,7,8,10,12 :31天
}
}

var strMonth = (intMonth) < 10 ? "0" + (intMonth).toString() : (intMonth).toString();
var strDay = (intDay) < 10 ? "0" + (intDay).toString() : (intDay).toString();
var strEndDate = intYear + "-" + strMonth + "-" + strDay;
return strEndDate;
}

二。相关方法、函数说明
// var myDate = new Date();
// myDate.getYear(); //获取当前年份(2位)
// myDate.getFullYear(); //获取完整的年份(4位,1970-????)
// myDate.getMonth(); //获取当前月份(0-11,0代表1月)
// myDate.getDate(); //获取当前日(1-31)
// myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
// myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
// myDate.getHours(); //获取当前小时数(0-23)
// myDate.getMinutes(); //获取当前分钟数(0-59)
// myDate.getSeconds(); //获取当前秒数(0-59)
// myDate.getMilliseconds(); //获取当前毫秒数(0-999),目前是13位整数
// myDate.toLocaleDateString(); //获取当前日期,如:2016年6月17日
// myDate.toLocaleTimeString(); //获取当前时间,如:11:41:24
// myDate.toLocaleString(); //获取当前日期时间,如:2016年6月17日 11:41:24

时间: 2024-11-09 00:38:39

js:合同-已知起始日期、年限,自动计算截止日期的相关文章

用js写已知abc+cba = 1333,其中a、b、c均为一位数,编程求出满足条件的a、b、c所有组合。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 28.0px Consolas; color: #888471 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 28.0px Consolas; color: #888471; min-height: 33.0px } span.Apple-tab-span { white-space: pre } <!--<script type="text/

求数列的的增幅,已知起始列和结束列,中间阶梯数

已知 n1=2 n2=100 阶梯=4 上面4个空列 每列增幅多少,正好填到100? 公式 (n2-n1)/(阶梯+1) 为什么要阶梯加1 因为 2 已经占用了一个阶梯了 原文地址:https://www.cnblogs.com/cfas/p/8988339.html

已知起始点,获取每段等距离途经点的经纬度(用百度js api作)

已知两个中文地址,自动规划路径,获取路径上每个3公里的点的经纬度 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <

Android百度地图 - 在地图上标注已知GPS纬度经度值的一个或一组覆盖物 - OPEN 开发经验库 - 360安全浏览器 8.1

首页   代码   文档   问答   资讯   经验   GitHub日报 登录   注册 www.open-open.com/libOPEN经验 投稿 全部经验分类  Android IOS JavaScript HTML5 CSS jQuery Python PHP NodeJS Java Spring MySQL MongoDB Redis NOSQL Vim C++ C# JSON Ruby Linux Nginx Docker 所有分类  >  开发语言与工具  >  移动开发  

对象布局已知时 C++ 对象指针的转换时地址调整

在我调试和研究 netscape 系浏览器插件开发时,注意到了这个问题.即,在对象布局已知(即对象之间具有继承关系)时,不同类型对象的指针进行转换(不管是隐式的从下向上转换,还是强制的从上到下转换)时,编译器会根据对象布局对相应的指针的值进行调整.不管是 microsoft 的编译器,还是 gcc 编译器都会做这个动作,因为这和 C++ 对象模型有关. 举一个简单的例子,如下代码: #include <stdio.h> class A { public: int x; void foo1()

初中几何知识复习,已知直角三角形角度和邻边长求对边长

我相信在面对涉及到几何运算的程序问题时不需要打草稿直接敲出正确代码的大神是存在的,当然我目前不是. 最近遇到一个实际问题,需要用到初中学过的三角函数知识来解决,把问题用三角函数来描述就是在一个直角三角形中,已知一个角α的角度,和角α的邻边长a,求角α的对边长b. 立马想到肯定是用tan这个函数,虽然我忘记了叫什么,百度才想起来叫做正切函数,恩,算算我入行到现在6,7年时间,基本上都是使用atan2.tan这个函数貌似总共没用到三次,你还别不信,游戏前端开发大部分还是在写逻辑,写数学算法的时候不多

计算本年 本月 本周的起始日期

<table> <tr> <td align="right" width="120px"> 销售时间区间: </td> <td> <select id="ddlChoiceDate" name="ddlChoiceDate" runat="server" onchange="SelectChange(this.value);&quo

HDU 1465 2045 已知结果往前推

1465 不容易系列之一 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %I64d , %I64u Java class name: Main [Submit] [Status] [Discuss] Description 大家常常感慨,要做好一件事情真的不容易,确实,失败比成功容易多了!做好“一件”事情尚且不易,若想永远成功而总从不失败,那更是难上加难了,就像花钱总是比挣钱容易的道理一样.话 虽这样说,

2015 前端[JS]工程师必知必会

2015 前端[JS]工程师必知必会 本文摘自:http://zhuanlan.zhihu.com/FrontendMagazine/20002850 ,因为好东东西暂时没看懂,所以暂时保留下来,供以后参考! MrSunny · 12 天前 上次我写<前端工程师必知必会>已经是三年前了,那是我写过最火的文章了.三年了,我仍然会在Twitter上收到关于这篇文章的消息. 从2012年到现在,一篇文章都没发过让我觉得有点羞羞哒.三年是一段很长的时间,很多东西都发生了改变.2012年,我鼓励同学们去