An Alternative Date Notation

Date:

I have recently been using a notation for dates that I think has some merit to it, compared to traditional date notation. It works well for me and it might work well for you too.

Background

Let's look at the traditional YYYY-MM-DD notation.

When I for example see the date 2023-08-07, how can I know whether it's referring to the 7th of August or the 8th of June? I simply need to know or ask the person who wrote the date. Sometimes this is self evident, as is the case with 2023-12-25, but that doesn't hold for many dates.

Additionally, unless I have savant like knowledge of dates, it's very difficult for me to know what day of the week this date is. Is it a Monday? A Saturday? My life is heavily organized around the days of the week - weekdays and weekends are the cycle of existence.

Writing these dates down is also slightly cumbersome - 2023-08-07 is 10 characters long. I can drop the leading 20* and write it as 23-08-07 of the year, but that creates more ambivalence. I can also drop the 0's in the month and day and write it as 2023-8-7, sure, but that is not very aesthetically pleasing. Or I could remove the dashes and write it as 20230807 but I find that hard to visually parse, quickly.

And when it comes to date spans, ex 2023-02-23 - 2023-04-12, it becomes even more problematic. How many days are there in between those dates? How many of those are business days? There are no easy shorthands to do those kinds of computations - I'm left with having to look at a calendar and count.

To summarize, the traditional date notation has issues with:

An Alternative Approach

I propose an alternative notation that is revolves around week numbers and days of the week that I call smart-ts notation (a name I'm not super stoked about, might revise that at some point).

It's formatted as WWyd. For example, 2024-01-30 (a Tuesday) in traditional notation would be translated to 5e2 in smart-ts notation, where:

Each year is represented by a unique non-number symbol (for now lowercase a-y with some notable exceptions). By putting the year symbol in between week and day, it acts both as a separator between numbers and as a carrier of information.

The year symbols are as follows:

symbol year
a 2020
b 2021
c 2022
d 2023
e 2024
f 2025
g 2026
h 2027
i 2028
j 2029
k 2030
m 2031
n 2032
p 2033
q 2034
r 2035
s 2036
t 2037
u 2038
v 2039
w 2040
x 2041
y 2042

The characters l, o and z have been removed from the list since they look similar to the numbers 1, 0, 2 and are ambiguous.

What will we do when we reach 2043? Well, let's hope this notation survives for that long. One alternative would be to move to uppercase A-Y.

Let's look at a span of dates, ex. 5e1 - 8e5. At a glance it's clear to me that this span:

And let's look at a sequence of dates, ex. 5e1, 5e3, 5e5. If this were to represent ex. a log of my workouts at the gym, it's evident to me that I worked out on a Monday, Wednesday and Friday and that I worked out for a total of three days that week.

Thus the smart-ts notation solves the problems of:

A Note on Week Numbers

A weird quirk of ISO week numbers is that the first week of the year carries over from the last week of the preceding year unless Jan 1st of the new year falls on a Monday. For example 2023-01-01, a Sunday, has the ISO week number 52. This is problematic since 2023-12-31, a Sunday, also has the ISO week number of 52.

smart-ts needs to handle this special case to avoid ambiguity, since following the ISO week standard would mean that 52d7 could mean both 2023-01-01 and 2023-12-31. That's why smart-ts uses the week number 0 to denote the leading, incomplete week of the year.

2023-01-01 is thus written as 0d7 and 2023-12-31 as 52d7.

Note however that if the year were to start on a Monday, as is ex. the case with 2024-01-01, a Monday, then this is written in smart-ts as 1d1.

This means that week numbers almost line up perfectly with the week numbers displayed in regular calendars, except for the leading week in certain years, making it easier to at a clance translate between traditional notation and smart-ts notation.

Wrapping Up

I've been using this notation for about a year and have been very happy with it thus far, especially for hand written notes.

I also wrote a tiny tool to translate between traditional and smart-ts notation, available on:

Did you find this useful or interesting at all? Or do you think I care way too much about something completely pointless? Let me know! I'm curious to learn either way.

  • Niclas Nilsson
  • Blog
  • About