본문 바로가기
Notion

[Notion] 노션으로 D-Day 계산해보기

by 까망 하르방 2022. 3. 29.
반응형

노션에서는 수식 속성을 활용하여

마감일(= 남은 일자, D-Day)을 계산할 수 있다.

📌 [노션] 데이터베이스 수식(formula) 속성 활용

 

[노션] 데이터베이스 수식(formula) 속성 활용

노션의 데이터베이스에서는 수식(formula) 속성을 활용해서 엑셀과 유사한 기능 보여준다. 엑셀만큼 복잡하면서 다양한 산출은 못하더라도 용도나 접근성 측면에서는 노션의 유연함이 더 좋은 것

zoosso.tistory.com

 

 

D-Day 계산을 위해

[날짜 속성] 항목도 필요하다.

수식 속성

 


간단하게 구현한다면 아래 2가지 함수로도 가능한다.

• dateBetween(): 두 날짜 사이 시간을 구하는 함수 (Time 단위 설정 가능)

dateBetwwen 수식

 

• now(): 현재 날짜와 시간을 가져오는 함수

now 수식

 


해당 포스팅 제작은 [3월 29일 (= 오늘)] 이다.

dateBetween(prop("날짜"), now(), "days")
예시

 

 

위와 같은 방식에는 2가지 아쉬운 점이 있다.

• 예상값보다 평균적으로 -1 되어 있다.

• now()로 생성되는 시간에 따라 하루 정도 오차 발생 ↑

* 하루 이틀 오차가 상관 없다면 그대로 사용해도 된다.

 

 


추정하는 오차 원인으로,,,

[날짜] 속성의 보이지 않는 시간대인 것 같다. 🤔

시간 포함 옵션

 

[날짜 속성] 세부 옵션에는 [시간 포함]이 있다.

기본적으로 해당 날짜 00:00 이다.

 

현재 날짜 + 시간까지 들고오는  now()와 계산될 때

현재 시간과 분도 같이 계산되는지 

예상 결과값이 오차가 발생하는 것이다.

 

 

개인적으로 적용해본 해결 방법은

now()로 추출한 현재시간에서 시간(hour)과 분(minutes)을 빼주는 것이다.

(= [날짜 속성]과 동일한 시간과 분으로 맞추는 것)

ex) 현재시간이 [2022/01/01 14:38→ [2022/01/01 00:00]

dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes")

 

 

DB에 적용하면 아래와 같다.

어제, 오늘, 내일이 알맞은 값으로 표시되었다.

dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days")

현재시간 날짜만 적용

 


D-Day 꾸며보기

D-Day를 단순히 숫자로 표시하지 않고 "D - {남은 일자}로 표시"

ex) 하루 남았으면 "D - 1"

concat("D - ", format(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days")))

D Day 문구 표시

format을 통해 계산한 D-Day」 수치를 문자열로 변경한다.

concat으로 "D - " + "{계산된 날짜}" 문자열을 합친다.

* [참고] 반환된 값도 문자열

 

지난 일자에 대해서는 "D + {남은 일자}"로 표시하고 싶은 경우

ex) 하루 지난 경우 "D + 1", 이틀 지난 경우 "D + 2"

if(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days") < 0, concat("D + ", format(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days") * -1)), concat("D - ", format(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days"))))

D Day 지난 일자 표시

 if 를 활용해서 {남은 일자}가 음수이며 -1 곱해서 양수로 변경한다.

     if (결과 < 0, 결과 * -1,결과)

* 처리하는 방식에 따라 다르게 구현할 수도 있다.

 

📌 유용한 Notion 단축키

 

유용한 Notion 단축키

" data-og-description="노션(Notion)은 현재 여러 사람들이 사용하는 도구 중 하나이다. • Google Drive, DropBox / Git / Slack / Trello / OneNote  여러 도구들과 연동이 좋은 편이다. • 활용정도에 따라..

zoosso.tistory.com

반응형

댓글