首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

大家关于用Javascript计算日期的有关问题,多谢

2012-03-26 
紧急求助大家关于用Javascript计算日期的问题,谢谢我编写了一个用Javascript计算日期的函数,例如现在日期

紧急求助大家关于用Javascript计算日期的问题,谢谢
我编写了一个用Javascript计算日期的函数,例如现在日期为“2007-06-04”,周期为“7个月”,计算有效日期应为“2008-01-03”,但是我编写的程序没有既没有计算,结果也没有显示出来,请大家帮我看看是什么问题,帮我修改一下,谢谢

<script   language= "JavaScript "   >
function   youxiaoriqi()
{   document.form1.jdzq.value   =   document.form1.jdzq1.value
      var   jiandingriqi=document.form1.jdrq.value;
    var   diff=document.form1.jdzq.value;  
    var   year=jiandingriqi.getyear();
    var   month=jiandingriqi.getmonth();
    var   day=jiandingriqi.getday();
    var   numDays   =   new   Array(31,28,31,30,31,30,31,31,30,31,30,31);
      var   isLeap   =   false;
                        var   newyear   =   year;
                        var   newmonth   =   month   -   1;
                        var   n   =   numDays[newmonth];
                        var   newday   =   day;
                        var   newdiff   =   diff;
                        var   ln;
                        if   (newmonth   ==   0)
                                ln   =   31;
                        else   if(newmonth   ==   11)
                                ln   =   31;
                        else
                                ln   =   numDays[newmonth   +   1];
                        if   (diff   !=   0)...{
                                //判断是否润年
                                if   (year   %   4   ==   0)...{
                                        if   (year   %   100   !=   0)
                                                isLeap   =   true;
                                        else...{
                                                if   (year   %   400   ==   0)
                                                        isLeap   =   true;


                                        }
                                }
                                if   (newmonth   ==   1   &&   isLeap)
                                        ++n;
                                       
                                if   (newmonth     ==   0   &&   isLeap)  
                                        ++ln;
                                //加值
                                var   newday   =   day   +   newdiff;
                                if   (newday   >   0)...{
                                        if   (newday   >   n)...{
                                                newday   =   newday   -   n;
                                                if   (newmonth   ==   11)
                                                ...{
                                                        newmonth   =   0;
                                                        newyear   +=   1;
                                                        newdiff   =   newday   -   1;
                                                        return   DayAddDiff(newyear,   newmonth   +   1,   1,   newdiff);
                                                }
                                                else...{


                                                        newmonth   +=   1
                                                        newdiff   =   newday   -   1;
                                                        return   DayAddDiff(newyear,   newmonth   +   1,   1,   newdiff);
                                                }
                                        }
                                }
                                else   if   (newday   ==   0)...{
                                        if   (newmonth   ==   0)
                                        ...{
                                                newmonth   =   11
                                                newyear   +=   -1;
                                                newday   =   31;
                                        }
                                        else...{
                                                newmonth   +=   -1
                                                newday   =   ln;
                                        }
                                }
                                else...{
                                        if   (newmonth   ==   0)
                                        ...{


                                                newmonth   =   11
                                                newyear   +=   -1;
                                                newdiff   =   newday;
                                                newday   =   31;
                                                return   DayAddDiff(newyear,   newmonth   +   1,   newday,   newdiff);
                                        }
                                        else...{
                                                newmonth   +=   -1;
                                                newdiff   =   newday;
                                                newday   =   ln;
                                                return   DayAddDiff(newyear,   newmonth   +   1,   newday,   newdiff);
                                        }
                                }
                        }
                        //输出字符串
                        var   daystring   =   " ";
                        daystring   +=   year;
                        newmonth   +=   1;
                        if   (newmonth   <   10)
                                daystring   +=   "/0 "   +   newmonth;
                        else
                                daystring   +=   "/ "   +   newmonth;


                        if   (newday   <   10)
                                daystring   +=   "/0 "   +   newday;
                        else
                                daystring   +=   "/ "   +   newday;
                        document.form1.yxrq.value=daystring;
              }
</script>  

<style   type= "text/css ">
<!--
.STYLE1   {font-size:   12px}
.STYLE2   {font-size:   16px}
.STYLE3   {font-size:   12px}
-->
</style>

<form   name= "form1 "   method= "post "   action= "Untitled-2-1.asp "   >
    <table   width= "100% "   border= "0 "   cellspacing= "1 "   cellpadding= "2 ">
        <tr   bgcolor= "#4E5960 ">  
            <td   height= "20 "   align= "center "   class= "heading "> <font   color= "#FFFFFF "   class= "STYLE2 "> <b> 证   书   /   报   告   录   入 </b> </font> </td>
        </tr>
    </table>
<table   width= "100% "   border= "1 "   cellspacing= "0 "   cellpadding= "1 "   bordercolordark= "#FFFFFF "   bordercolor= "#000000 ">
    <tr>  
            <td   width= "25% "   bgcolor= "#bfbfbf ">  
            <div   align= "center "   class= "STYLE2 "> 检定日期: </div>         </td>
            <td   width= "75% "   bgcolor= "#efefef ">  
                <input   name= "jdrq "   type= "text "   class= "STYLE2 "   value= " <%=Date()%> "size= "20 "   maxlength= "20 "   />         </td>
    </tr>
    <tr>  
            <td   width= "25% "   height= "30 "   bgcolor= "#bfbfbf ">  
            <div   align= "center "   class= "STYLE2 "> 检定周期: </div>         </td>
            <td   width= "75% "   bgcolor= "#efefef "   style= "height:30px;position:relative ">
    <select   name= "jdzq1 "   class= "STYLE2 "   id= "jdzq1 "   style= "position:absolute;width:80px;   clip:rect(0   80   60   60); "   onChange= "youxiaoriqi() ">
                <option   value= " ">   </option>


                <option   value= "2 "> 2 </option>
                <option   value= "3 "> 3 </option>
                <option   value= "6 "> 6 </option>
                <option   value= "12 "> 12 </option>
                <option   value= "24 "> 24 </option>
                <option   value= "36 "> 36 </option>
            </select>
    <input   name= "jdzq "   type= "text "   class= "STYLE2 "   id= "jdzq "   style= "position:absolute;width:80px; "   onFocus= "this.value= ' ';document.form1.jdzq1.value= ' '; "   value= " "   />
            </td>
    </tr>
    <tr>  
            <td   width= "25% "   bgcolor= "#bfbfbf ">  
            <div   align= "center "   class= "STYLE2 "> 有效日期: </div>         </td>
            <td   width= "75% "   bgcolor= "#efefef ">  
            <input   name= "yxrq "   type= "text "   class= "STYLE2 "   size= "20 "   maxlength= "20 "   />         </td>
    </tr>

</table>
</form>

[解决办法]
<script language= "JavaScript " >
function youxiaoriqi()
{
var jiandingriqi=document.form1.jdrq.value;
var sel = document.form1.jdzq;
if(sel.selectedIndex==0 || jiandingriqi== " ") return false;
var a = jiandingriqi.split( "- ");
if(a.length != 3) return false;
var theday = new Date(parseInt(a[0]),parseInt(a[1]-1),parseInt(a[2]));
var d = new Date(theday.getFullYear(), theday.getMonth() + parseInt(sel.options[sel.selectedIndex].value), theday.getDate()-1);
var m = parseInt(d.getMonth())+1;
var t = d.getDate();
m = "0 " + m;
m = m.substr(m.length-2,2);
t = "0 " + t;
t = t.substr(t.length-2,2);
document.form1.yxrq.value = d.getFullYear() + "- " + m + "- " + t;
}
</script>

<style type= "text/css ">
<!--
.STYLE1 {font-size: 12px}
.STYLE2 {font-size: 16px}
.STYLE3 {font-size: 12px}
-->
</style>

<form name= "form1 " method= "post " action= "Untitled-2-1.asp " >
<table width= "100% " border= "0 " cellspacing= "1 " cellpadding= "2 ">
<tr bgcolor= "#4E5960 ">
<td height= "20 " align= "center " class= "heading "> <font color= "#FFFFFF " class= "STYLE2 "> <b> 证 书 / 报 告 录 入 </b> </font> </td>
</tr>
</table>


<table width= "100% " border= "1 " cellspacing= "0 " cellpadding= "1 " bordercolordark= "#FFFFFF " bordercolor= "#000000 ">
<tr>
<td width= "25% " bgcolor= "#bfbfbf ">
<div align= "center " class= "STYLE2 "> 检定日期: </div> </td>
<td width= "75% " bgcolor= "#efefef ">
<input name= "jdrq " type= "text " class= "STYLE2 " value= " "size= "20 " maxlength= "20 " /> </td>
</tr>
<tr>
<td width= "25% " height= "30 " bgcolor= "#bfbfbf ">
<div align= "center " class= "STYLE2 "> 检定周期: </div> </td>
<td width= "75% " bgcolor= "#efefef " style= "height:30px;position:relative ">
<select name= "jdzq " class= "STYLE2 " id= "jdzq1 " onChange= "youxiaoriqi() ">
<option value= " "> 选择检定周期: </option>
<option value= "2 "> 2 </option>
<option value= "3 "> 3 </option>
<option value= "6 "> 6 </option>
<option value= "12 "> 12 </option>
<option value= "24 "> 24 </option>
<option value= "36 "> 36 </option>
</select>
</td>
</tr>
<tr>
<td width= "25% " bgcolor= "#bfbfbf ">
<div align= "center " class= "STYLE2 "> 有效日期: </div> </td>
<td width= "75% " bgcolor= "#efefef ">
<input name= "yxrq " type= "text " class= "STYLE2 " size= "20 " maxlength= "20 " /> </td>
</tr>

</table>
</form>

[解决办法]
<script language= "JavaScript " >
function youxiaoriqi()
{
var jiandingriqi=document.form1.jdrq.value;
var sel = document.form1.jdzq;
if(sel.selectedIndex==0 || jiandingriqi== " ") return false;
var theday = new Date(jiandingriqi.replace(/-/ig, "/ "));
var d = new Date(theday.getFullYear(), theday.getMonth() + parseInt(sel.options[sel.selectedIndex].value), theday.getDate()-1);
if(d.getDate()+1 != theday.getDate()) d.setDate(0);
var m = parseInt(d.getMonth())+1;//加了这一句
var t = d.getDate();
m = "0 " + m;
m = m.substr(m.length-2,2);
t = "0 " + t;
t = t.substr(t.length-2,2);
document.form1.yxrq.value = d.getFullYear() + "- " + m + "- " + t;
}
</script>

<head>
<style type= "text/css ">
<!--
.STYLE1 {font-size: 12px}
.STYLE2 {font-size: 16px}
.STYLE3 {font-size: 12px}
-->
</style>

<form name= "form1 " method= "post " action= "Untitled-2-1.asp " >
</head>

<table width= "100% " border= "0 " cellspacing= "1 " cellpadding= "2 ">
<tr bgcolor= "#4E5960 ">
<td height= "20 " align= "center " class= "heading "> <font color= "#FFFFFF " class= "STYLE2 "> <b> 证 书 / 报 告 录 入 </b> </font> </td>


</tr>
</table>
<table width= "100% " border= "1 " cellspacing= "0 " cellpadding= "1 " bordercolordark= "#FFFFFF " bordercolor= "#000000 ">
<tr>
<td width= "25% " bgcolor= "#bfbfbf ">
<div align= "center " class= "STYLE2 "> 检定日期: </div> </td>
<td width= "75% " bgcolor= "#efefef ">
<input name= "jdrq " type= "text " class= "STYLE2 " value= "2007-12-31 " size= "20 " maxlength= "20 " /> </td>
</tr>
<tr>
<td width= "25% " height= "30 " bgcolor= "#bfbfbf ">
<div align= "center " class= "STYLE2 "> 检定周期: </div> </td>
<td width= "75% " bgcolor= "#efefef " style= "height:30px;position:relative ">
<select name= "jdzq " class= "STYLE2 " id= "jdzq1 " onChange= "youxiaoriqi() ">
<option value= " "> 选择检定周期: </option>
<option value= "2 "> 2 </option>
<option value= "3 "> 3 </option>
<option value= "6 "> 6 </option>
<option value= "12 "> 12 </option>
<option value= "24 "> 24 </option>
<option value= "36 "> 36 </option>
</select>
</td>
</tr>
<tr>
<td width= "25% " bgcolor= "#bfbfbf ">
<div align= "center " class= "STYLE2 "> 有效日期: </div> </td>
<td width= "75% " bgcolor= "#efefef ">
<input name= "yxrq " type= "text " class= "STYLE2 " size= "20 " maxlength= "20 " /> </td>
</tr>

</table>
</form>

热点排行