[Obsidian] DataViewJS를 활용한 D-Day 만들기

2024. 1. 24. 23:18꿀팁 분석 환경 설정/Obsidian

728x90

obsidian에서 dataviewjs를 사용하여 D-Day를 만드는 코드를 공유드립니다.

notion에서도 수식을 이용해서 d-day를 만들 수 있는데, obsidian에서도 마찬가지로 더 복잡하지만 만들 수 있어서 공유드립니다.

---
start_date: 2024-01-30
end_date: 2024-02-04
---
```dataviewjs
const currentPage = dv.current();
const today = new Date();

// 페이지의 start_date와 end_date 속성 가져오기
const startDate = new Date(currentPage.file.frontmatter.start_date);
const endDate = new Date(currentPage.file.frontmatter.end_date);

// start_date와 end_date 사이의 기간 차이 계산 (일자 단위)
const totalDays = (endDate - startDate) / (1000 * 3600 * 24);

// 오늘 날짜 기준으로 남은 일자 계산 (D-Day)
const remainingDays = Math.ceil((endDate - today) / (1000 * 3600 * 24));

// 결과 출력
dv.paragraph(`'${currentPage.file.name}' 페이지의 전체 기간은 총 ${totalDays}일 입니다.`);
if (remainingDays >= 0) {
    dv.paragraph(`오늘부터 종료일까지 D-${remainingDays}일 남았습니다.`);
} else {
    dv.paragraph(`종료일은 이미 지났습니다.`);
}
```

 

 

이런 식으로 note title과 기간을 이용해서 마감일을 만들 수 있습니다.

 

이걸 좀 더 확대하면 아마 전체 note에서 start_date와 end_date를 찾아서 그것들에 대한 마감일도 정리해 줄 수 있겠네요

 

감사합니다.

728x90