Roen의 iOS 개발로그

[Notion] 노션에서 텍스트로 걸린 시간 계산 하는 수식 공유

by Steady On

이럴 때 없으세요?

노션에서 시작시각과 종료시각을 각각 다른 칸에 적고, 알아서 시작부터 종료까지 걸린 시간을 계산해줬으면 좋겠을때요! 예를 들면, 몇시에 잠들었고 몇시에 일어났다를 입력하면, 짜잔! 하고 몇시간 잤다고 알려주는거죠! 이럴 때는 보통 "날짜"로 속성을 만들어서 시각 포함을 한다음 계산하곤 하는데요. 노션의 치명적인 단점은 그렇게 하는 경우, 시각만 보고 싶은데 쓸데없이 날짜까지 같이 봐야하고... 입력도 귀찮아지죠...

날짜 속성을 사용해서 시간을 계산할때

또 수식으로 몇시간 몇분 이렇게 나타내려면, 단순히 dateBetween을 쓰는 것뿐 아니라 엄청 이것저것 많이 수식을 겹쳐서 써줘야 합니다.

 

그럼 어떻게?

텍스트로 입력하고 시간 계산 하기!

이렇게 텍스트로 "HH:mm"(시:분)형식으로 시각을 입력하면, 같은 형식으로 시간을 계산해주는 수식을 공유해드리겠습니다!!

❗️주의사항!!

- 시각을 입력하실때는 반드시 24시간 형식으로 입력하셔야 합니다. 예를 들어 오후 3시 30분이면, 15:30 이겠죠?

- 시각은 반드시 두자리로 입력해주세요! 예를 들어 오전 9시면, 09:00입니다!! 9:00으로 하시면 안돼요 ㅠㅠ

 

그럼 수식 공유 갑니당!

 

수식 공유 및 사용 방법

concat((floor((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) + ((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) < 0) ? 1440 : 0)) / 60) < 10) ? "0" : "", format(floor((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) + ((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) < 0) ? 1440 : 0)) / 60))) + ":" + concat((floor((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) + ((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) < 0) ? 1440 : 0)) % 60) < 10) ? "0" : "", format(floor((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) + ((toNumber(slice(prop("종료"), 0, 2)) * 60 + toNumber(slice(prop("종료"), 3)) - (toNumber(slice(prop("시작"), 0, 2)) * 60 + toNumber(slice(prop("시작"), 3))) < 0) ? 1440 : 0)) % 60)))

 

  1. 수식을 복사해서 메모 앱, 메모장, Pages, 한글, Word 등 아무 문서, 텍스트를 편집할 수 있는 곳에 붙여 넣습니다.
  2. 수식에 있는 모든 시작를 찾아서 나의 노션 데이터 베이스에서 "시작 시각"으로 설정한 속성이름으로 바꿔주세요!
  3. 수식에 있는 모든 종료를 찾아서 나의 노션 데이터 베이스에서 "종료 시각"으로 설정한 속성이름으로 바꿔주세요!
  4. 그리고 같은 데이터 베이스에서 "수식 속성"을 하나 만들고, 편집을 눌러서 2와 3에서 이름을 바꾼 수식을 복사해서 붙여넣어주시면 됩니다!!

어떻게 이렇게 되는건가요?

아무도 궁금하지 않겠지만! 원리는 간단합니다!

시간 계산은 (종료시각) - (시작시각)이죠? 근데 노션은 우리가 텍스트로 적은 시각은 "시각"이라고 인식하지 못합니다. 그래서 일일이 분단위로 바꿔서 계산하고 다시 원래 형태로 바꿔줘야해요.

  1. 종료시각과 시작시각을 각각 앞의 두자리(시)에 60을 곱하고 뒤의 두자리(분)을 더해줍니다.
  2. 분단위로 계산한 종료시각에서 분단위로 계산한 시작시각을 빼줍니다.
  3. 2에서 계산한 결과가 음수이면, 1440을 더하고 60으로 나눈 몫을 시로, 나머지를 분으로 해서 HH:mm 형태로 만들어줍니다.
  4. 2에서 계산한 결과가 양수면, 그냥 60으로 나눈 몫을 시로, 나머지를 분으로 해서 HH:mm 형태로 만들어줍니다.

 

그럼 다들 노션으로 행복한 기록생활되세요~~

블로그의 정보

Roen의 iOS 개발로그

Steady On

활동하기