I localised my awesome fuzzyclock.py script to Norwegian language and, uh, regional time-reading standards. Behold the glory of vagklokke.py! A little terminal in the top right of my screen now proudly proclaims:
<br /> Datoen er 2012-11-13<br /> Klokka er fem på elleve<br />
It was fun to work out how to handle “x på/over halv” without too many horrible range conditions. I haven’t bothered to remove stale things like ‘tjuefem’ from the minute list, because it ain’t broke. Now you, too, can have the power of a clock that isn’t very accurate. Now with added date!
#!/usr/bin/env python # vim: set fileencoding=utf8 : # Norwegian port of fuzzyclock from datetime import datetime, time from time import sleep import sys hours = [ 'tolv', 'ett', 'to', 'tre', 'fire', 'fem', 'seks', 'sju', 'åtte', 'ni', 'ti', 'elleve', ] minutes = [ 'null', 'fem', 'ti', 'kvart', 'tjue', 'tjuefem', 'halv' ] def fuzzyclock(time=None): if time is None: time = datetime.now() hour = time.hour minute = int(round(time.minute/5.0)) if (minute >= 4 and minute < 6) or minute >= 9: past='på' else: past='over' if minute >= 4: hour += 1 if minute < 9: past = '%s halv' % (past) # Adjust the minute to be in the first half of the hour if minute > 6: minute = 12 - minute # Handle på/over halv in the same way if minute > 3 and minute < 6: minute = 6-minute minute = minutes[minute] hour = hours[hour%12] if minute=='null': return "%s" % (hour) if minute=='halv': return "halv %s" % (hour) return "%s %s %s" % (minute, past, hour) if __name__=='__main__': if len(sys.argv) > 1 and sys.argv[1] == '-t': for x in xrange(0,60,5): print "Klokka er %s" % fuzzyclock(datetime(2012,01,01,9,x,0)) else: # By default, print the time every 10 seconds while True: print "Datoen er %s" % datetime.now().date() print "Klokka er %-23s" % (fuzzyclock()), sys.stdout.flush() sleep(10) # Go up a line and CR, if the terminal lets you print "\x1b[1F\r",