DBILITY

독거 가능성 100% 노후에 라면값이라도 하게 센스를 발휘합시다!😅
Please click on the ad so that I can pay for ramen in my old age!
点击一下广告,让老后吃个泡面钱吧!
老後にラーメン代だけでもするように広告を一回クリックしてください。

momentjs weekday timetable calcuration ( 기준일자 이후 요일 기준 시간표 날짜 생성 ) 본문

front-end & ui/javascript

momentjs weekday timetable calcuration ( 기준일자 이후 요일 기준 시간표 날짜 생성 )

DBILITY 2023. 2. 3. 16:47
반응형

말이 어렵다.

한 20년만에 시간표를 보니 왜 이리 어렵나!? 심지어 내가 축약방식으로 작성한 코드도 이해가 안가는 일이 생겼다.

일정표 상의 수업이 있는 요일이 기준일(학기시작일)을 기준으로 돌아오는 첫번째 주부터 날짜를 계산해야 하는 것.

머가리인지 코드로 짜는게 어렵다.SQL이 너무 편해서 인가...요샌 면접에 코딩테스트도 있다던데, 나는 10000% 불합격이다.온통 사고 방식이 가로,세로를 어떻게 가공할 것인가로 발전했나 보다.

다음은 테스트용 코드로 momentjs를 써 봤다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.9.0/moment.min.js"
            integrity="sha512-l7jogMOI6ZWZJEY7lREjFdQum46y2+kpp/mnbJx7O+izymO9eGjL6Y4o7cEJNBdouhVHpti2Wd79Q6aIjPwxtQ=="
            crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>
<body>
<script>
    var baseDate = "2023-03-01"; // 수요일
    var weekDay = 1; // 월요일
    var adsDays = 0;
    for (let i = 0; i < 15; i++) {

        /*
          요일은 1~7로 표현되었다.
          일정표 요일이 기준일의 요일 보다 이전이면
           기준일 + 다음주까지 남은 일자 + 일정표 요일
          아니면
           기준일 + 일정표 요일 - 기준일의 요일

          코드 기준으로 2023-03-01은 수요일로 3, 일정표 요일은 월요일로 1

        */
        if (weekDay < moment(baseDate).isoWeekday()) {
            adsDays = 7 - moment(baseDate).isoWeekday() + weekDay;

        } else {
            adsDays = weekDay - moment(baseDate).isoWeekday();
        }
        var teachDate = moment(baseDate).add(i * 7 + adsDays, "days").format("YYYY-MM-DD");


        console.log(i, weekDay, moment(baseDate).isoWeekday(), teachDate);
    }
</script>
</body>
</html>

test01.html
0.00MB

반응형

'front-end & ui > javascript' 카테고리의 다른 글

kendoGrid no record template  (0) 2023.12.06
web browser local storage  (0) 2023.06.15
javascript optional chaining , nullish coaleasing  (0) 2022.03.30
javascript Object.assign  (0) 2022.02.15
javascript map reduce  (0) 2022.01.05
Comments