Mercurial > repo
annotate bin/beat @ 11940:35d17fa5d3ba draft
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
author | HackEso <hackeso@esolangs.org> |
---|---|
date | Fri, 13 Sep 2019 12:14:23 +0000 |
parents | d1bee51ebc7e |
children | e48305a84ee8 |
rev | line source |
---|---|
11940
35d17fa5d3ba
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11939
diff
changeset
|
1 #!/usr/bin/python3 |
11939
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
2 # beat - print current time in Swatch Internet Time format. |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
3 # blame fizzie |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
4 import math,sys,getopt,time |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
5 prec = 0 |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
6 opts,args = getopt.getopt(sys.argv[1:], "hpP:") |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
7 print(opts) |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
8 for opt,oarg in opts: |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
9 if "-p" == opt: prec = 2 |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
10 elif "-P" == opt: prec = int(oarg) |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
11 elif "-h" == opt: print("Usage: beat [-p]\nPrint current time in Swatch Internet Time format."); sys.exit(2) |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
12 else: raise AssertionError() |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
13 if args: |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
14 raise RuntimeError("too many command-line arguments") |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
15 b = math.floor(((time.time()+3600) % 86400) / 86.4 * 10**prec) |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
16 o = "%0*d" % (prec, b) |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
17 if 0 < prec: o = o[0:-prec] + "." + o[-prec:] |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
18 print(o) |
d1bee51ebc7e
<wob_jonas> fetch bin/beat https://hack.esolangs.org/get/bin/beat
HackEso <hackeso@esolangs.org>
parents:
11937
diff
changeset
|
19 #END |