File tree 2 files changed +42
-0
lines changed
2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -2,3 +2,4 @@ github3.py
2
2
tweepy
3
3
pyusb
4
4
pulsectl
5
+ python-dateutil
Original file line number Diff line number Diff line change
1
+ #!/usr/bin/env /home/andreas/code/dotfiles/.venv/bin/python
2
+
3
+ import argparse
4
+ import datetime
5
+ import dateutil .parser
6
+
7
+
8
+ def parse_dt (val ):
9
+ return dateutil .parser .parse (val )
10
+
11
+
12
+ def get_time_until (dt , unit = None ):
13
+ now = datetime .datetime .now (dt .tzinfo )
14
+ delta = dt - now
15
+ if unit is not None :
16
+ unit = unit .strip ().lower ()
17
+ if unit [0 ] == "d" :
18
+ return f"{ delta .days } days"
19
+ elif unit [0 ] == "h" :
20
+ delta = str (int ((delta .days * 24 ) + (delta .seconds / 3600 ))) + " hours"
21
+ elif unit in ("mins" , "minutes" ):
22
+ delta = str (int ((delta .days * 24 ) + (delta .seconds / 60 ))) + " minutes"
23
+ return delta
24
+
25
+
26
+ def main ():
27
+ parser = argparse .ArgumentParser ()
28
+ parser .add_argument ("-u" , "--unit" )
29
+ parser .add_argument ("-t" , "--template" , default = "Time until {time}: {remaining}" )
30
+ parser .add_argument ("datetime" , type = parse_dt )
31
+ args = parser .parse_args ()
32
+ print (
33
+ args .template .format (
34
+ time = args .datetime ,
35
+ remaining = get_time_until (args .datetime , unit = args .unit ),
36
+ )
37
+ )
38
+
39
+
40
+ if __name__ == "__main__" :
41
+ main ()
You can’t perform that action at this time.
0 commit comments