개발자의 길

[자바스크립트] 날짜 계산 본문

2. JS

[자바스크립트] 날짜 계산

자르르 2009. 12. 4. 13:30


function getLastDay(mm,yy){
 var nDays;
 var nMonthDay = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 if (isLeapYear(yy)){
  nMonthDay[1]=29;
 }
 nDays=nMonthDay[mm];
 return nDays;
}

function statDate(sType){
  if(sType=="")return;
      var sType = sType;
  var fSearch = window.document.frmForm;
  
  var today = new Date();

  var curYear = today.getFullYear();
  var curMonth =  today.getMonth()+1;
  var curMonthDay = 0;   
  var curDate = today.getDate();
  var curDay = today.getDay();
  var curTime=today.getTime();
  var startYear = 0;
  var startMonth = 0;
  var startDate = 0;
  var endYear = 0;
  var endMonth = 0;
  var endDate = 0;
  curMonthDay = getLastDay(curMonth-1,curYear);
  //이번달
  if (sType == 'this_month'){
   startYear = curYear;
   startMonth = curMonth;
   startDate = "1";
   
   endYear = curYear;
   endMonth = curMonth;
   endDate = getLastDay(startMonth-1,startYear);
  }else if (sType == 'this_week'){//이번주
   startYear = curYear;
   startMonth = curMonth;
   startDate = curDate-curDay;
   if(startDate<=0){
    if ((curMonth - 1) <= 0)  
    {
     startYear = startYear - 1;
     startMonth = 12;
     startDate = getLastDay(11,curYear) + (curDate-curDay);
     

    }else
    {
     startDate = getLastDay(curMonth-2,curYear) + (curDate-curDay);
     startMonth = curMonth-1;
    }
   }
   endYear = curYear;
   endMonth = curMonth;
   endDate = curDate;
  }else if (sType == 'today'){//오늘
   startYear = curYear;
   startMonth = curMonth;
   startDate = curDate;
   
   endYear = curYear;
   endMonth = curMonth;
   endDate = curDate;
  }else if (sType == 'yesterday'){//어제
   startYear = curYear;
   startMonth = curMonth;
   
   if ((curDate-1) < 1)   
   {
    startDate = getLastDay(curMonth-2,curYear);

    if ((curMonth-1) < 1)    
    {
     startMonth = 12;
     startYear = curYear - 1;
     if(curDate==1)
      startDate = getLastDay(startMonth-1,curYear);
    }else {
     startMonth = curMonth - 1;
     if(curDate==1)
      startDate = getLastDay(startMonth-1,curYear);
    }
   }else {
    startDate = (curDate-1);
   }
   
   endYear = startYear;
   endMonth = startMonth;
   endDate = startDate;
  }else if (sType == 'prev_7'){//지난주
   startYear = curYear;
   startMonth = curMonth;
   startDate = (curDate-curDay)-7;
   if(startDate<=0){
    if ((curMonth - 1) <= 0)  
    {
     startYear = startYear - 1;
     startMonth = 12;
     startDate = getLastDay(11,curYear) + (curDate-curDay)-7;
     

    }else
    {
     startDate = getLastDay(curMonth-2,curYear) + (curDate-curDay)-7;
     startMonth = curMonth-1;
    }
   }
   endYear = curYear;
   endMonth = curMonth;
   endDate = curDate-curDay-1;
   if(endDate<=0){
    if ((endMonth - 1) <= 0)  
    {
     endYear = endYear - 1;
     endMonth = 12;
     endDate = getLastDay(11,endYear) + (curDate-curDay)-1;
     

    }else
    {
     endDate = getLastDay(endMonth-2,endYear) +  (curDate-curDay)-1;
     endMonth = endMonth-1;
    }
   }
  
  }else if (sType == 'prev_week'){//지난7일
   startYear = curYear;
   startMonth = curMonth;
   startDate = curDate-7;
   
   endYear = curYear;
   endMonth = curMonth;
   endDate = curDate;
   
   if ((curDate)-7 <= 0)  
   {
    
    if ((curMonth - 1) <= 0)  
    {
     startYear = startYear - 1;
     startMonth = 12;
     startDate = getLastDay(11,curYear) + (curDate-7);
     

    }else
    {
     startDate = getLastDay(curMonth-2,curYear) + (curDate-7);
     startMonth = curMonth-1;
    }
   }
   

  
  }else if (sType == 'prev_month'){//지난달
   startYear = curYear;
   startMonth = curMonth-1;
   startDate = 1;
   if ((curMonth-1) < 1)   
   {
    startYear = curYear - 1;
    startMonth = 12;
   }
   
   if (startDate >getLastDay(startMonth-1,startYear))
    startDate = getLastDay(startMonth-1,startYear);

   endYear = curYear;
   endMonth = curMonth-1;
   endDate = getLastDay(startMonth-1,startYear);
   
  }else if (sType == 'prev_3month'){
   startYear = curYear;
   startMonth = curMonth-3;
   startDate = curDate;
   if ((curMonth-3) < 1)   
   {
    startYear = curYear - 1;
    startMonth = 12+curMonth-3;
   }

   if (startDate >getLastDay(startMonth-1,startYear))
    startDate = getLastDay(startMonth-1,startYear);

   endYear = curYear;
   endMonth = curMonth;
   endDate = curDate;
   
  }else if (sType == 'prev_6month'){
   startYear = curYear;
   startMonth = curMonth-6;
   startDate = curDate;
   if ((curMonth-3) < 1)   
   {
    startYear = curYear - 1;
    startMonth = 12+curMonth-3;
   }

   if (startDate >getLastDay(startMonth-1,startYear))
    startDate = getLastDay(startMonth-1,startYear);

   endYear = curYear;
   endMonth = curMonth;
   endDate = curDate;
   
  }
  if (startMonth < 10)
   startMonth = "0" + startMonth;
  if (startDate<10)
   startDate = "0" + startDate;
  if (endMonth < 10)
   endMonth = "0" + endMonth;
  if (endDate<10)
   endDate = "0" + endDate;
  document.getElementById("srtdate").value=startYear + "." + startMonth + "." + startDate;
  document.getElementById("enddate").value=endYear + "." + endMonth + "." + endDate;

 
}



이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공유하기 링크
Comments