Compile with
nim c christmas
The bottom triangle is a triangular hour/minute clock as proposed by Jörg Pretz in 2010: the five lower rows (from top to bottom) are in units of 6 h, 2 h, 30 m, 6 m, and 1 m, respectively.
The upper triangle indicates seconds: First, there is a yellow seconds indicator as on the Berlin clock (blinks yellow when seconds are even), and the three following rows are in units of 20 s, 5 s, and 1 s, respectively.
The clock can display any time between 00:00:00 and 11:59:59, so at 12 am and 12 pm, it rolls over and the hours/minutes indicator at the bottom goes dark for a minute. In other words, 12 o'clock is depicted as 0 hours.
Window size is fixed at 500x900 pixels.
The time in the screenshot below is 10:28:10.