How to get full duration in base formula like dataview?

Nice. Also, your quip about not revealing your age made me realize the code should include some data validation for time! Here’s a working template.

Time between two dates

Conditions

  • earlierDate and laterDate are date-without-time values
  • earlierDate comes before laterDate
    • includes a check just in case

Code

if(laterDate < earlierDate, "time travel!", if(laterDate == earlierDate, "same day", 
[

(laterDate - earlierDate).years.floor() + " years", 

(laterDate - (earlierDate + duration((laterDate - earlierDate).years.floor() + "y"))).months.floor() + " months", 

(laterDate - (earlierDate + duration((laterDate - earlierDate).years.floor() + "y") + duration((laterDate - (earlierDate + duration((laterDate - earlierDate).years.floor() + "y"))).months.floor() + "M"))).days.floor() + " days"

].filter(value.slice(0,1) > 0).join(", ")
))

Adaptations

datetime values

  • when the values include time

Append .date() as needed.

timeSince (age)

  • when laterDate is set to today()
  • e.g., for calculating time since a past event

Replace the first pseudo-line with:

if(today() < earlierDate, "you traveled to the future to do this", if(today() == earlierDate, "today", 

timeTill (countdown)

  • when earlierDate is set to today()
  • e.g., for calculating time until a future event

Replace the first pseudo-line with:

if(laterDate < today(), "this event has passed", if(laterDate == today(), "today", 
2 Likes