본문 바로가기

Java Script/work

다음 생일까지 남은 일수

 

1번 : 2021/01/01

<body>
<div style="border: solid skyblue;">
<h1 id="demo">다음 생일까지 남은 일수</h1>
<h5>다음 버튼을 클릭하여 생일을 입력하면, <br> 다음 생일까지 남은 일수를 볼 수 있습니다</h5>
<input type="button" value="생일을 입력" onclick="prom()">
<br><br><br><br><br><br>
</div>

<script type="text/javascript">
function prom() {
	let input = prompt('다음 생일을 입력하세요','');
	d = new Date(); 
	
	if (input =='') {
		alert('다시 입력해주세요')
		
	}else{
	date1 = new Date(input);
	date2 = new Date(d.getFullYear(),d.getMonth(),d.getDate());
	
	/* alert(t);
	alert(u); */
	
	let diff = (date1.getTime() - date2.getTime())/(1000*60*60*24);
	alert('입력하신 생일까지 남은 기간은 ' + diff + '일 입니다');
	}
}
</script>
</body>

 

 

2번(강사님방법)

: 생일 월과 일을 각각 따로 입력받음,

1년단위로 계산, 날짜가 마이너스(-)일경우 +1년해줘서 결과값도출

<body>
<div style="border: solid skyblue;">
<h1 id="days">다음 생일까지 남은 일수</h1>
<h5>다음 버튼을 클릭하여 생일을 입력하면, <br> 다음 생일까지 남은 일수를 볼 수 있습니다</h5>
<input type="button" value="생일을 입력" onclick="prom()">
<br><br><br><br><br><br>
</div>

<script type="text/javascript">
function prom() {
	//2번
	let birthMonth = prompt("생일 월을 입력해 주십시오(1~12)");
	let birthDay = prompt("생일 날짜를 입력해 주십시오(1~21)");
	
	//현재 날짜와 비교
	let nowday = new Date();	//오늘
	let birth = new Date();		//생일을 작성 할 날짜
	
	//자신의 생일을 저장
	birth.setMonth(birthMonth-1);
	birth.setDate(birthDay);
	
	//				자신의 생일		- 	현재날짜
	let mSecond = birth.getTime() - nowday.getTime();
	// mSecond가 마이너스(-)일 경우  ->  생일이 지났으므로 조건을 달아줌
	if (mSecond <= 0) {
		let birthYear = birth.getFullYear();
		birth.setFullYear(birthYear+1);
		
		mSecond = birth.getTime() - nowday.getTime();
	}
	// 위에서 얻은 초를 다시 나눠줌
	let days = mSecond / (24 * 60 * 60 * 1000);
	document.getElementById("days").innerHTML = days;
}

</script>
</body>