`` Day of week
`` www.scriptol.org
`` this source is public domain


int dow(int y, int m, int d)
        if m < 3
                m + 13
                y - 1
        else
                m + 1
        /if
return (d + ((26 * m) / 10) + y + (y / 4) - (y / 100) + (y / 400) + 5) mod 7


void usage()
        print "Usage: dow yy mm dd"
        exit(1)
return


int main(int argc, array argv)

        int DayOfWeek
        int d, m, y
        array days   = array(31, 29, 31, 30, 31, 30,  31, 31, 30, 31, 30, 31)
        array day    = array( "Monday", "Tuesday", "Wednesday", "Thursday",
                        "Friday", "Saturday", "Sunday")
        array month  = array("January", "February", "March", "April",
                       "May", "June", "July", "August",
                       "September", "October", "November", "December")

        if argc < 4 let  usage()

        y = argv[1].toInt()
        m = argv[2].toInt()
        d = argv[3].toInt()

        if not (m in 1..12) let usage()
        if not (d in 1..31) let usage()
        if y < 100 let y + 2000

        DayOfWeek = dow(y, m, d)
        print d, month[m - 1], y, "is a", day[DayOfWeek]

return 0


main($argc, $argv)