28h Days

Update on 2024-02-12: when browsing Hacker News, I found a comment that pointed out this xkcd about 28h days. I’m glad there’s some prior art about it.

Some time ago, I found myself with zero obligations to function within the usual routine: wake up in the morning, and go to sleep at night (I call this “normal people schedule”). During my time awake, I was either working on side-projects or playing with my hobbies. This led me to observe that without sticking to a daily routine, my sleep schedule would drift every day compared to the previous one.

This is what I mean with an example: if on day X I went to sleep at 10:00 and woke up at 18:00, I’d stay awake for some time, and I’d then go to bed on day X+1 at a time later than 10:00. Let’s say I went to bed on day X+1 at 12:00. Then, on day X+2 I’d go to bed at a time later than 12:00, and this would keep happening. I also noticed that on most days I’d sleep a bit longer than 8h, sometimes 9h or even 10h.

After making this observation and probing myself every day, I realised that this was happening because I just didn’t feel tired at all whenever “normal people schedule” said I should be going to bed. Once I realised this, something clicked in my mind: for most of my adult life, I’d always have to force myself to go to bed during weekdays, but naturally this drift would occur, and then I’d reset it during the weekend, thus going back to forcing myself to sleep on weekdays to stick to the routine. During the weekend, I’d often sleep longer hours to compensate the shorter hours I’d sleep through the week. When I didn’t need to stick to any routine because I had zero obligations with the outside world, my inner schedule didn’t seem to fit with a schedule made for a 24h day, and that’s why it naturally drifted.

Well, I find myself with almost zero obligations with the outside world now. My only “obligation” is to spend some time with my friends and significant other during weekends. I can’t have zero schedule, because this will mean that during some weekends I’ll be functioning at a time not compatible with my friends’ or my SO’s, so I decided to experiment with something a bit different this time.

Given my observation that I just wasn’t tired at all in the usual “sleep ~8h, be awake ~16h” normal people schedule, I decided to find a different schedule that would let me stay awake for longer, but still somehow match with normal people schedule during weekends. And given that I’d staying up longer, this new schedule should ideally let me sleep for longer as well.

A week has 7 days, and each day has 2 * 2 * 2 * 3 hours, so I had 2 * 2 * 2 * 3 * 7 hours to separate into smaller units and this would guarantee I’d stick to some weekly schedule, which is important so I can match with other people’s schedules every weekend. Since my goal is to increase my hours when I’m awake, I need something that gives me less days in the week, but more hours per day, so that left only one reasonable schedule to experiment with: 6 days of 28h each. The second best schedule was 4 days of 42 hours each, which is already unreasonable to me.

Turns out that this schedule works really well for my weekends! If I start my week at Monday 04:00 and leave ~10h of sleep time each day, I’ll wake up around ~06:00 on Saturdays, and ~10:00 on Sundays. This seems perfect to me! Having 10h of sleep each day means that I don’t need to worry about resting well when I need it. I expect that on many days I’ll still sleep the usual ~8h, and then get extra hours to do things when awake, which (I’m hoping) will naturally push me to sleep a bit longer, thus achieving some balance. I have 10h allocated for sleep each day, so I won’t feel forced to wake up before I’m fully rested as well.

This is the schedule I’ll start experimenting with! I hope to make entries in this blog with my observations from following this schedule.

Bonus: creating a 28h clock

Once I was set on this 28h-day schedule, I realised it would help a lot to have a 28h clock, so I can tell when I should go to sleep and eat without having to remember that I need to go to sleep at 04:00 on Mondays, 08:00 on Tuesdays, and so on.

Trying to get a 28h clock on an Android phone led me to realise that we have a lot of code to deal with different timezones and even different calendars, but almost every code we write to deal with human time assumes a 24h day! (And people still want to go to Mars…)

I ended up creating some quick code to determine the time in my 28h day, and I put it up here. I use it to check the time on my phone. On my computer I have a script that does essentially the same thing and updates my system bar with my 28h time as well. The code currently can’t tell the time from days before my designated “day 0”, and it can’t do any calendar math either. If things work well and I see the need to start calculating those things, I might start a repository or something with some lib code to deal with different clocks.