역학/달력 & 만세력 개발
년도를 60갑자로 변환 - 자바스크립트
光
2020. 6. 17. 15:45
년도년도를 60갑자로 변환 - 자바스크립트
yyyy |

HTML
<table id = 'gogung'>
<caption id ="title">title</caption>
<tr>
<td><button class ="g_btn" onclick = "preYear();">◀</button></td>
<td><p id = 'tyear'>yyyy</p></td>
<td><button class ="g_btn" onclick = "nextYear();">▶</button></td>
</tr>
</table>
css생략.
JavaScript
(function(){
let titleEle = document.getElementById('title');
let dateEle = document.getElementById('tyear');
let sky10 = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸'];
let ground12 = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'];
let skyNum; // 천간 수
let groundNum; // 지지 수
setYearTitle = (skyNum,groundNum) => titleEle.textContent = sky10[skyNum] + ground12[groundNum] +"년";
setDate = (newdate) => dateEle.textContent = newdate;
getDate = () => Number(dateEle.textContent);
preYear = () => {
setDate(getDate()-1);
skyNum--;
groundNum--;
if(skyNum < 0) { skyNum = 9;}
if(groundNum <0) { groundNum = 11;}
setYearTitle(skyNum,groundNum);
}
nextYear = () => {
setDate(getDate()+1);
skyNum = (skyNum+1)%10;
groundNum = (groundNum+1)%12;
setYearTitle(skyNum,groundNum);
}
window.onload = () => {
const today = new Date().getFullYear();
setDate(today);
// 서기 4년- 갑자년.
skyNum = (today-4) % 10;
groundNum = (today-4) % 12;
setYearTitle(skyNum,groundNum);
}
})();
let sky10 = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸']; 10천간
let ground12 = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥']; 12지지
년도를 mod10, mod12 로 계산
10와 12 최소공배수 60 / 서기 4년 - 갑자년.
소스코드 중 이해안가는 부분은 질문하세요