javascript 计算两日期间的天数

  1. function ShowTime()
  2. {
  3.  var dat1=new Date(form1.syear1.value,form1.smoth1.value,form1.sdate1.value,form1.shour1.value,00,00);
  4.  var dat2=new Date(form1.syear2.value,form1.smoth2.value,form1.sdate2.value,form1.shour2.value,00,00);
  5.  if((dat2-dat1)>=0)
  6.  {
  7.   var y1=0,m1=0,d1=0,h1=0,y2=0,m2=0,d2=0,h2=0;
  8.   var day1=0,day2=0;
  9.   y1=parseInt(form1.syear1.value);
  10.   m1=parseInt(form1.smoth1.value);
  11.   d1=parseInt(form1.sdate1.value);
  12.   h1=parseInt(form1.shour1.value);
  13.   y2=parseInt(form1.syear2.value);
  14.   m2=parseInt(form1.smoth2.value);
  15.   d2=parseInt(form1.sdate2.value);
  16.   h2=parseInt(form1.shour2.value);
  17.   
  18.   var month=new Array();
  19.   month[0]=365;
  20.   month[1]=31;
  21.   month[2]=28;
  22.   month[3]=31;
  23.   month[4]=30;
  24.   month[5]=31;
  25.   month[6]=30;
  26.   month[7]=31;
  27.   month[8]=31;
  28.   month[9]=30;
  29.   month[10]=31;
  30.   month[11]=30;
  31.   month[12]=31;
  32.     
  33.   if(y1%400==0 || (y1%4==0 && y1%100!=0))//开始年是否为润年
  34.   {
  35.    month[0]=366;
  36.    month[2]=29;
  37.   }
  38.   else
  39.   {
  40.    month[0]=365;
  41.    month[2]=28;   
  42.   }
  43.   
  44.   for(var i=1;i<m1;i++)//以开始年的1月1日为第一天的起点
  45.   {
  46.    day1+=month[i];
  47.   }
  48.   day1+=d1;//开始日期经过的天数
  49.   
  50.   for(var i=y1;i<y2;i++)//计算年份经过的天数
  51.   {
  52.    if(i%400==0 || (i%4==0 && i%100!=0))//开始年到结束年间有无润年
  53.    {
  54.     month[0]=366;
  55.     month[2]=29;
  56.    }
  57.    else
  58.    {
  59.     month[0]=365;
  60.     month[2]=28;   
  61.    }
  62.    day2+=month[0];
  63.   }
  64.   if(y2%400==0 || (y2%4==0 && y2%100!=0))//结束年是否为润年
  65.   {
  66.    month[0]=366;
  67.    month[2]=29;
  68.   }
  69.   else
  70.   {
  71.    month[0]=365;
  72.    month[2]=28;   
  73.   }
  74.   
  75.   for(var i=1;i<m2;i++)
  76.   {
  77.    day2+=month[i];
  78.   }
  79.   
  80.   day2+=d2;//结束日期经过的天数
  81.   
  82.   form1.txtFacthou.value=(day2-day1)*24+h2-h1;/两日期间的小时
  83.   if(((day2-day1)*24+h2-h1)==0)//时间相同
  84.   {
  85.    form1.txtFactdat.value=0;
  86.   }
  87.   else
  88.   {
  89.    form1.txtFactdat.value=(day2-day1)+1;两日期间的天数
  90.   }
  91.  }
  92.  else
  93.  {
  94.  alert("起始时间大于结束时间");
  95.  form1.shour2.value="";
  96.  form1.sdate2.value="";
  97.  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值