2012年5月23日 星期三

[javascript]日期計算

加365日
alert(addDate(4,365,'0960301'));
→顯示 0970229


加一年 減一日
addDate(4,-1,addDate(1,1,'1000301'));
→顯示 1000229

function addDate(type,NumDay,dtDate){
  var date = new Date();
  type = parseInt(type); //類型
  lIntval = parseInt(NumDay);//間隔
  date.setYear(parseInt(dtDate.substr(0,3),10) + 1911); //年設定
  date.setMonth(parseInt(dtDate.substr(3,2)-1,10) ); //月設定
  date.setDate(parseInt(dtDate.substr(5,2),10)); //日設定

  switch(type){
     case 1 ://年
        date.setYear(date.getYear() + lIntval)
        break;
     case 2 ://季度
        date.setMonth(date.getMonth() + (lIntval * 4) )
        break;
     case 3 ://月
        date.setMonth(date.getMonth() + lIntval)
        break;
     case 4 ://天
        date.setDate(date.getDate() + lIntval)
        break;
     default:
    }
 
   return  LPad(""+parseInt(date.getYear()-1911),"0",3) +'' +  LPad(""+parseInt(date.getMonth()+1),"0",2) + '' +  LPad(""+parseInt(date.getDate()),"0",2);
 }


//向左補零
function LPad(str,sub,len)
{
   var str1=str;
   while(1)
   {
      var i=str1.length;
   if (i>=len)
   {
   break;
   }
   else
   {
         str1=sub+str1;
      }
   }
   return str1;
}


沒有留言:

張貼留言