/**
* 날짜계산기
* 아무것도 안던지면 오늘날짜 반환
* 오늘일자 기준 년,월,일 +- 계산해드림
* @param addYear : 년도계산 +10, -10 등등
* @param addMonth : 월계산 +10, -10 등등
* @param addDay : 일자계산 +10, -10 등등
* @param token : 기본값 "-"
* @return yyyy-mm-dd
*/
function getDate(addYear, addMonth, addDay, token){
token = token == undefined || token == null ? "-" : token;
addYear = addYear == null ? 0 : addYear;
addMonth = addMonth == null ? 0 : addMonth;
addDay = addDay == null ? 0 : addDay;
var now = new Date();
var ry = now.getFullYear();
var rm = now.getMonth() + 1;
var rd = now.getDate();
if(addYear != 0){//cal year
ry = ry + addYear;
}
if(addMonth != 0){//cal month
var isRun = true;
rm = rm + addMonth;
while(isRun == true){
if(rm > 12){
ry++;
rm = rm - 12;
}else if(rm < 1){
ry--;
rm = 12 + rm;
}
if(rm > 0 && rm < 13){
isRun = false;
}
}
}
var cal = new Date(ry, rm, 0);
if(rd > cal.getDate())
rd = cal.getDate();
if(addDay != 0){
rd = rd + addDay;
if(rd > cal.getDate() || rd < 1){
var isRun = true;
while(isRun == true){
if(rd > cal.getDate()){
rd = rd - cal.getDate();
rm++;
if(rm > 12){
ry++;
rm = 1;
}
}
if(rd < 1){
rm--;
if(rm < 1){
ry--;
rm = 12;
}
cal = new Date(ry, rm, 0);
rd = cal.getDate() + rd;
}
cal = new Date(ry, rm, 0);
if(rd <= cal.getDate() && rd >= 1)
isRun = false;
}
}
if(rd > cal.getDate() || rd < 1){
cal = new Date(ry, rm, 0);
}
}
if(rm.toString().length < 2)
rm = '0' + rm;
if(rd.toString().length < 2)
rd = '0' + rd;
return ry + token + rm + token + rd;
}
ex)
var today = getDate();
today = '2011-04-27';
var today = getDate(null, null, null, '.');
today = '2011.04.27';
var day1 = getDate(0, -1, 0);
day1 = '2011-03-27';
ok? ^^;
* 날짜계산기
* 아무것도 안던지면 오늘날짜 반환
* 오늘일자 기준 년,월,일 +- 계산해드림
* @param addYear : 년도계산 +10, -10 등등
* @param addMonth : 월계산 +10, -10 등등
* @param addDay : 일자계산 +10, -10 등등
* @param token : 기본값 "-"
* @return yyyy-mm-dd
*/
function getDate(addYear, addMonth, addDay, token){
token = token == undefined || token == null ? "-" : token;
addYear = addYear == null ? 0 : addYear;
addMonth = addMonth == null ? 0 : addMonth;
addDay = addDay == null ? 0 : addDay;
var now = new Date();
var ry = now.getFullYear();
var rm = now.getMonth() + 1;
var rd = now.getDate();
if(addYear != 0){//cal year
ry = ry + addYear;
}
if(addMonth != 0){//cal month
var isRun = true;
rm = rm + addMonth;
while(isRun == true){
if(rm > 12){
ry++;
rm = rm - 12;
}else if(rm < 1){
ry--;
rm = 12 + rm;
}
if(rm > 0 && rm < 13){
isRun = false;
}
}
}
var cal = new Date(ry, rm, 0);
if(rd > cal.getDate())
rd = cal.getDate();
if(addDay != 0){
rd = rd + addDay;
if(rd > cal.getDate() || rd < 1){
var isRun = true;
while(isRun == true){
if(rd > cal.getDate()){
rd = rd - cal.getDate();
rm++;
if(rm > 12){
ry++;
rm = 1;
}
}
if(rd < 1){
rm--;
if(rm < 1){
ry--;
rm = 12;
}
cal = new Date(ry, rm, 0);
rd = cal.getDate() + rd;
}
cal = new Date(ry, rm, 0);
if(rd <= cal.getDate() && rd >= 1)
isRun = false;
}
}
if(rd > cal.getDate() || rd < 1){
cal = new Date(ry, rm, 0);
}
}
if(rm.toString().length < 2)
rm = '0' + rm;
if(rd.toString().length < 2)
rd = '0' + rd;
return ry + token + rm + token + rd;
}
ex)
var today = getDate();
today = '2011-04-27';
var today = getDate(null, null, null, '.');
today = '2011.04.27';
var day1 = getDate(0, -1, 0);
day1 = '2011-03-27';
ok? ^^;