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 相关文章推荐
javascript 播放器 控制
Jan 22 Javascript
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
Dec 15 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
简介JavaScript中Math.LOG10E属性的使用
Jun 14 Javascript
AngularJS+Node.js实现在线聊天室
Aug 28 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
模板视图和AngularJS之间冲突的解决方法
Nov 22 Javascript
Vue父子组件双向绑定传值的实现方法
Jul 31 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
JavaScript实现复选框全选和取消全选
Nov 20 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
论建造顺序的重要性
2020/03/04 星际争霸
用PHP动态创建Flash动画
2006/10/09 PHP
第十二节--类的自动加载
2006/11/16 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
利用jQuery简单实现产品展示图片左右滚动功能(示例代码)
2014/01/02 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
javascript动态创建及删除元素的方法
2014/12/22 Javascript
使用js画图之饼图
2015/01/12 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
2016/02/25 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
Vue.js组件tabs实现选项卡切换效果
2016/12/01 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
[01:50]WODOTA制作 DOTA2中文宣传片《HERO》
2013/04/28 DOTA
python实现apahce网站日志分析示例
2014/04/02 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
python中私有函数调用方法解密
2016/04/29 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
营业用房租赁协议书
2014/11/26 职场文书
楚门的世界观后感
2015/06/03 职场文书
工作表现证明
2015/06/15 职场文书
Redis性能监控的实现
2021/07/09 Redis