Javascript로 만드는 [기념일 계산기]

박상혁·2023년 11월 2일

객체(Object) 알아보기

객체(Object).키(Key)를 이용하여 객체의 값을 가져올 수 있으며, 값에는 배열, 함수 등 들어갈 수 있다.

<body>
    <h1>객체(Object)</h1>
    <script>
        var person = {
            name: 'jocoding',
            sayHello: function() { console.log('hello'); }
        }
        console.log(person.name);
        person.sayHello();
    </script>
</body>

Date 객체 알아보기

Date 객체 참고 문서

내장 객체

javascript Date 구글링해서 알아보자

   <script>
        //1. Date 객체 생성
        var now = new Date();
        //2. 연도를 가져오는 메서드 .getFullYear()
        console.log(now.getFullYear());
        //3. 월 정보를 가져오는 메서드 .getMonth() {0: 1월, 1: 2월, ... 10: 11월, 11: 12월}
        console.log(now.getMonth());
        //4. 일 정보를 가져오는 메서드 .getDate()
        console.log(now.getDate());
        //5. 1970년 1월 1일 00:00:00을 기준으로 흐른 시간을 밀리초로 표시하는 메서드 .getTime()
        console.log(now.getTime());
        //6. 특정 일의 Date 객체 생성
        var christmas = new Date('2020-12-25');
        console.log(christmas);
        //7. 특정 ms의 Date 객체 생성
        var ms = new Date(1000);
        console.log(ms);
    </script>

기념일 계산기 1

var now = new Date(); // 현재 시점을 기준으로 now 객체 생성
var start = new Date('2020-06-30'); 
var timeDiff = now.getTime() - start.getTime();
var day = Math.floor(timeDiff / (1000 * 60 * 60 * 24) + 1); 
// 밀리세컨으로 값이 나오므로 1000을 곱하여 초를 구하고 60을 곱하여 분, 다시 60곱해서 시간, 24를 곱하여 일을 계산 
//사귄날이 1일이므로 1을 더하자
$('#love').text(day + '일째'); 

기념일 계산기 2

기념일까지 남음 기간은?

var valentine = new Date('2024-02-14'); 
var timeDiff2 = valentine.getTime() - now.getTime(); 
var day2 = Math.floor(timeDiff2 / (1000 * 60 * 60 * 24) + 1); 
$('#valentine').text(day + '일 남음'); 

기념일 계산기 3

천일은 언제인가?

var ms = start.getTime() + 999 * (1000 * 60 * 60 * 24);
var thousand = new Date(ms); 
var thousandDate = thousand.getFullYear() + '.' + (thousand.getMonth()+1) + '.' + thousand.getDate(); 
//월(getMonth())은 0~11의 값이므로 1을 더해야한다 
$('#thousand-date').text(thousandDate);

기념일 계산기 4

1000일까지 남은 일수 구하기 (발렌타인과 동일함)

var timeDiff3 = thousand.getTime() - now.getTime();
var day3 = Math.floor(timeDiff3 / (1000 * 60 * 60 * 24) + 1);
$('#thousand').text(day3 + '일 남음');

기념일 계산기 정리하기

<script>
        var now = new Date();
        var start = new Date('2020-06-30');

        //우리 몇 일째?
        var timeDiff = now.getTime() - start.getTime();
        var day = Math.floor(timeDiff / (1000 * 60 * 60 * 24) + 1);
        $('#love').text(day + '일째');

        //기념일까지 남은 날짜는?
        var valentine = new Date('2021-02-14');
        var timeDiff2 = valentine.getTime() - now.getTime();
        var day2 = Math.floor(timeDiff2 / (1000 * 60 * 60 * 24) + 1);
        $('#valentine').text(day2 + '일 남음');

        //천일은 언제인가?
        var thousand = new Date(start.getTime() + 999 * (1000 * 60 * 60 * 24));
        var thousandDate = thousand.getFullYear() + '.' + (thousand.getMonth()+1) + '.' + thousand.getDate();
        $('#thousand-date').text(thousandDate);

        //기념일까지 남은 날짜는?
        var timeDiff3 = thousand.getTime() - now.getTime();
        var day3 = Math.floor(timeDiff3 / (1000 * 60 * 60 * 24) + 1);
        $('#thousand').text(day3 + '일 남음');
    </script>
profile
멋진 개발자가 되겠어요 :-)

0개의 댓글