On github: https://github.com/aewallin/digiclock
A simple clock display with local time, UTC, date (iso8601 format of course!), MJD, day-of-year, and week number. Useful as a permanent info-display in the lab - just make sure your machines are synced with NTP.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | # use Tkinter to show a digital clock # tested with Python24 vegaseat 10sep2006 # https://www.daniweb.com/software-development/python/code/216785/tkinter-digital-clock-python # http://en.sharejs.com/python/19617 # AW2015-04-24 # added: UTC, localtime, date, MJD, DOY, week from Tkinter import * import time import jdutil # https://gist.github.com/jiffyclub/1294443 root = Tk() root.attributes("-fullscreen", True) # this should make Esc exit fullscrreen, but doesn't seem to work.. #root.bind('',root.attributes("-fullscreen", False)) root.configure(background='black') #root.geometry("1280x1024") # set explicitly window size time1 = '' clock_lt = Label(root, font=('arial', 230, 'bold'), fg='red',bg='black') clock_lt.pack() date_iso = Label(root, font=('arial', 75, 'bold'), fg='red',bg='black') date_iso.pack() date_etc = Label(root, font=('arial', 40, 'bold'), fg='red',bg='black') date_etc.pack() clock_utc = Label(root, font=('arial', 230, 'bold'),fg='red', bg='black') clock_utc.pack() def tick(): global time1 time2 = time.strftime('%H:%M:%S') # local time_utc = time.strftime('%H:%M:%S', time.gmtime()) # utc # MJD date_iso_txt = time.strftime('%Y-%m-%d') + " %.5f" % jdutil.mjd_now() # day, DOY, week date_etc_txt = "%s DOY: %s Week: %s" % (time.strftime('%A'), time.strftime('%j'), time.strftime('%W')) if time2 != time1: # if time string has changed, update it time1 = time2 clock_lt.config(text=time2) clock_utc.config(text=time_utc) date_iso.config(text=date_iso_txt) date_etc.config(text=date_etc_txt) # calls itself every 200 milliseconds # to update the time display as needed # could use >200 ms, but display gets jerky clock_lt.after(20, tick) tick() root.mainloop() |
This uses two small additions to jdutil:
1 2 3 4 5 6 7 | def mjd_now(): t = dt.datetime.utcnow() return dt_to_mjd(t) def dt_to_mjd(dt): jd = datetime_to_jd(dt) return jd_to_mjd(jd) |