printtime.h

Download
[ SundialTime time hour min rounded_min;
    hour = (time / 60) % 12;
    min = time % 60;

    if (min < 8) rounded_min = 0;
    else if (min < 23) rounded_min = 15;
    else if (min < 38) rounded_min = 30;
    else if (min < 53) rounded_min = 45;
    else {
        rounded_min = 0;
        hour = (hour + 1) % 12;  ! Round up to next hour
    }

    ! Adjust hour for "til" times
    if (rounded_min == 45) hour = (hour + 1) % 12;

    switch (rounded_min) {
        0:  ; ! just use the hour
        15: print "quarter past ";
        30: print "half past ";
        45: print "quarter to ";
    }

    #IfDef OPTIONAL_LANGUAGE_NUMBER;
        if (hour == 0) hour = 12;
        LanguageNumber(hour);
    #IfNot;
        switch (hour) {
            0: print "twelve";
            1: print "one";
            2: print "two";
            3: print "three";
            4: print "four";
            5: print "five";
            6: print "six";
            7: print "seven";
            8: print "eight";
            9: print "nine";
            10: print "ten";
            11: print "eleven";
        }
    #Endif;
    if (time < 720) print " in the morning";
    else if (time < 1020) print " in the afternoon";
    else print " in the evening";
];