The Six Days of the Japanese Calendar

I have a small fascination with calendars,1 including the traditional Japanese calendar, which has a lot of interesting cultural tidbits that aren’t obvious to Westerners. I remember my early years visiting Japan to see my in-laws and pondering every time I sat on the toilet the calendar that was hung up on the wall next to me. You can see an example of the traditional calendar here, or this one from my wife’s parents’ home, taken in 2010:

One of the more interesting cultural oddities you’ll see on many Japanese calendars are small marks like 大安, 仏滅, and 先勝 that repeat over and over in a cycle each month. These are known as the rokuyō (六曜) or “six days” and are related to a small superstition that has persisted since the Edo Period.

Prior to the early-industrial Meiji Period, Japan still used a lunar calendar based on the Chinese model which is now called kyūreki (旧暦) or “the old calendar”. This calendar had twelve months, 30 days each, to reflect the cycles of the moon. Japanese New Year thus originally coincided with Chinese New Year, though the first day of the new lunar year is now related to kyūshōgatsu (旧正月) as new year is observed on January 1st instead.

Anyhow, since the months were all exactly 30 days, the rokuyō were six days that reflected good or bad fortune on that day, mainly related to public events like weddings, funerals, new undertakings, etc. Though, it’s thought that the six days were also used to determine one’s fortune in gambling, too The six days are, in order:

  • 先勝 (senshō) – Mornings were thought to be auspicious (lit. “winning first”), but afternoons unlucky.
  • 友引 (tomobiki) – Funerals were avoided this day, but private gathering of friends were considered OK. The literal meaning is “friends pulling”.
  • 先負 (senbu) – Mornings were thought to be unlucky (lit. “losing first”, but afternoons auspicious.
  • 仏滅 (butsumetsu) – This day, literally meaning “death of the Buddha”,2 was thought to be inauspsicous all day.
  • 大安 (taian) – Very auspicious days in general. Literally means “great luck”.
  • 赤口 (shakkō) – This day was also generally dangerous, though 11am to 1pm was thought to be OK. Literally means “red mouth”. One superstition related to shakkō was that knives were particularly dangerous due to accidents.

The six days simply repeat over and over throughout the old Chinese calendar, but there’s a twist:

  • The first day of the 1st and 7th month is always 先勝 (senshō).
  • The first day of the 2nd and 8th month is always 友引 (tomobiki).
  • The first day of the 3rd and 9th month is always 先負 (senbu).
  • …and so on.

So this cycle of six days actually resets at the beginning of a new month. This leads to some interesting outcomes for certain traditional Japanese holidays, particularly the 5 seasonal holidays or sekku, some of which we’ve talked about here in the blog. For example:

  • Girls Day is always 大安 (taian). Girls rock, what can I say? 😎
  • Childrens Day (originally Boys Day) is always 先負 (senbu). Maybe boys start out awkward, but mature into their own later? 💪🏼
  • Tanabata (July 7th), one of my other favorite Japanese holidays, is always 先勝 (senshō). The star-crossed lovers that feature in the story of Tanabata were separated later, so perhaps they were only lucky at first. 💔 (just kidding)
  • Day of the Chrysanthemum (Sept. 9th, another holiday we haven’t gone over yet) is always 大安 (taian). Mathematically this makes sense since it is exactly 6 months away from Girls Day.

Further, a couple other traditional holidays such as jūgoya (十五夜, “harvest moon-viewing day”) is always 仏滅 (butsumetsu) and the lesser-known jūsanya (十三夜, “the full moon after harvest moon”) is always 先負 (senbu).

A while back before I had all this figured out, I wrote a small computer program that would execute every time I would log into my computer terminal. Sometimes, I written program this in Python language, sometimes in Ruby, and I might have even tried writing it in Golang at one point, though that version has since been lost.

The current incarnation I use (screenshot above) was written in Ruby language using an object-oriented structure and prints out the Imperial reign name and the rokuyō for the current date. It is genuinely hackey as my Ruby skills are minimal, but I wanted a good exercise for personal practice:

#!/usr/bin/env ruby

# Composed by Doug M
# Details here:

# Terminal colors for the win
class String
    def black;          "\e[30m#{self}\e[0m" end
    def red;            "\e[31m#{self}\e[0m" end
    def green;          "\e[32m#{self}\e[0m" end
    def brown;          "\e[33m#{self}\e[0m" end
    def blue;           "\e[34m#{self}\e[0m" end
    def magenta;        "\e[35m#{self}\e[0m" end
    def cyan;           "\e[36m#{self}\e[0m" end
    def gray;           "\e[37m#{self}\e[0m" end
    def bg_black;       "\e[40m#{self}\e[0m" end
    def bg_red;         "\e[41m#{self}\e[0m" end
    def bg_green;       "\e[42m#{self}\e[0m" end
    def bg_brown;       "\e[43m#{self}\e[0m" end
    def bg_blue;        "\e[44m#{self}\e[0m" end
    def bg_magenta;     "\e[45m#{self}\e[0m" end
    def bg_cyan;        "\e[46m#{self}\e[0m" end
    def bg_gray;        "\e[47m#{self}\e[0m" end
    def bold;           "\e[1m#{self}\e[22m" end
    def italic;         "\e[3m#{self}\e[23m" end
    def underline;      "\e[4m#{self}\e[24m" end
    def blink;          "\e[5m#{self}\e[25m" end
    def reverse_color;  "\e[7m#{self}\e[27m" end

# Anchor date for the Lunar calendar (January 25th, 2020)
anchor_day = '01'
anchor_month = '25'
anchor_year = '2020'

# Build a basic Ruby class, with all the dates preloaded and necessary functions.
class CalendarDay
    def initialize(current_date)
        @day = current_date.strftime("%-d")
        @month = current_date.strftime("%B")
        @year = current_date.strftime("%Y")
        # The ascension date for our script, currently April 1st, 2019 
        # the coronation of the current Reiwa Emperor
        @ascension_day = '01'
        @ascension_month = '04'
        @ascension_year = '2019'
    def get_current_date
        return "#{@month} #{@day}#{get_ordinal_suffix(@day)}, #{@year}"
    def get_nengo

        # 年号 (nengō) - the current Imperial reign name
        nengo = "令和"
        # Note, the first year of the Imperial reign is year "1", not "0"
        reign_ordinal = (@year.to_i - @ascension_year.to_i)+1
        reign_year = "#{reign_ordinal}#{get_ordinal_suffix(reign_ordinal.to_s)} year of #{nengo.cyan}"
        return reign_year
    def get_ordinal_suffix(ordinal)

        case ordinal
            when '1'
                suffix = 'st'
            when '21'
                suffix = 'st'
            when '31'
                suffix = 'st'
            when '2'
                suffix = 'nd'
            when '22'
                suffix = 'nd'
            when '3'
                suffix = 'rd'
            when '23'
                suffix = 'rd'
                suffix = 'th'

        return suffix
    def get_rokuyo

        # The basic array with our six days, plus terminal colors.
        rokuyo = ['先勝'.blue, '友引'.grey, '先負'.blue, '仏滅'.brown, '大安'.green, '赤口'.bg_red]

        # I am not even going to try to explain why this works.
        return rokuyo[(@day.to_i + (@month.to_i % 6)) % 6]

# Grab today's date
d =

# Print the actual message
puts "Today is #{d.get_current_date()}, the #{d.get_nengo()}.  Today is #{d.get_rokuyo()}."

The trickiest part, by far, is to calculate the actual date. In previous incarnations, I had a bunch of complex processes to make this work with 99% accuracy, though eventually drift would set in. Once I figured out that the 1st day of the month would reset in a fixed pattern, I finally realized that all this was a bunch of modulus math within modulus math:

(day of the month + (month number % 6)) % 6

Anyhow, that’s a brief look at the rokuyo in the Japanese calendar. If you’re technically-inclined, feel free to try out the program above, make improvements, send feedback, whatever.

For everyone else, the six days are a bit of a cultural relic from an earlier time in Japan, and apart from planning weddings and funerals, most people give it no real thought. Me? I like to check it from time to time and see if my day’s experiences matched the day’s fortune (spoiler: it usually doesn’t).

1 Historia Civilis has a fun video on Youtube about the origin of the Julian Calendar and why 44 BCE was the “longest” year in history.

2 The idea of the Buddha’s death and the concept of Nirvana (lit. “unbinding”) is a lengthy subject in Buddhism. Enjoy!

Published by Doug

🎵Toss a coin to your Buddhist-Philhellenic-D&D-playing-Japanese-studying-dad-joke-telling-Trekker, O Valley of Plentyyy!🎵He/him

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: