JavaScript实现给定时间相加天数的方法


Posted in Javascript onJanuary 25, 2016

本文实例讲述了JavaScript实现给定时间相加天数的方法。分享给大家供大家参考,具体如下:

/**
* 时间相加处理函数
* @param date 需要计算的时间(xxxx-xx-xx)
* @param plusDays 要加的天数(整数)
*/
function calcuDate(date, plusDays) {
  var dateArray = date.split("-");
  var year = +dateArray[0];
  var month = +dateArray[1];
  var day = +dateArray[2];
  var oriDay = day;
  var secondMonthDays = ((year%4 === 0 && year%100 !== 0) || year%400 === 0) ? 29 : 28;
  while(plusDays>0) {
    oriDay = day
    day += plusDays;
    switch(month) {
      case 4:
      case 6:
      case 9:
      case 11:
        if(day > 30) {
          plusDays -= (30-oriDay)+1;
          month++;
          day = 1;
        } else {
          plusDays = 0;
        }
      break;
      case 2:
        if(day > secondMonthDays) {
          plusDays -= (secondMonthDays-oriDay)+1;
          month++;
          day = 1;
        } else {
          plusDays = 0;
        }
      break;
      default:
        if(day > 31) {
          plusDays -= (31-oriDay)+1;
          day = 1;
          month++;
        } else {
          plusDays = 0;
        }
    }
    if(month>12) {
      month = 1;
      year++;
    }
  }
  return createTimeString(year, month, day);
}

当然,除了这种方式之外,还有其他的,类似于new Date传参之类的解决方案,这也算是一种吧

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
ExtJs 3.1 XmlTreeLoader Example Error
Feb 09 Javascript
javascript定时变换图片实例代码
Mar 17 Javascript
JavaScript获取网页表单提交方式的方法
Apr 02 Javascript
Angular.js如何从PHP读取后台数据
Mar 24 Javascript
星期几的不同脚本写法(推荐)
Jun 01 Javascript
JavaScript DOM 对象深入了解
Jul 20 Javascript
BootStrap Tooltip插件源码解析
Dec 27 Javascript
浅谈原生JS中的延迟脚本和异步脚本
Jul 12 Javascript
原生JS获取元素的位置与尺寸实现方法
Oct 18 Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
Jan 24 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 Javascript
jQuery中inArray方法注意事项分析
Jan 25 #Javascript
jquery ui dialog替代confirm实例分析
Jan 25 #Javascript
AngularJS控制器controller正确的通信的方法
Jan 25 #Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 #Javascript
详解jquery事件delegate()的使用方法
Jan 25 #Javascript
AngularJS中的Directive实现延迟加载
Jan 25 #Javascript
AngularJS中的Directive自定义一个表格
Jan 25 #Javascript
You might like
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
php二维码生成
2015/10/19 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
jQuery中val()方法用法实例
2014/12/25 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
vue awesome swiper异步加载数据出现的bug问题
2018/07/03 Javascript
如何使用vuex实现兄弟组件通信
2018/11/02 Javascript
[01:46]新英雄登场
2019/09/10 DOTA
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python是编译运行的验证方法
2015/01/30 Python
python+Django+apache的配置方法详解
2016/06/01 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
2016/06/13 Python
python实现逻辑回归的方法示例
2017/05/02 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python对列表的操作知识点详解
2019/08/20 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
2019/08/22 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
Python @property装饰器原理解析
2020/01/22 Python
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
size?荷兰官方网站:英国高级运动鞋精品店
2020/07/24 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
运动会广播稿30字
2014/01/21 职场文书
现金出纳岗位职责
2014/03/15 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
优秀员工推荐材料
2014/12/20 职场文书
2015年营业员工作总结
2015/04/23 职场文书
Python+Appium自动化测试的实战
2021/06/30 Python