daycalc
This script calculates the number of days between two dates, or the date a certain number of days before/after another date.
Output is as minimal as possible, either an ISO8601 formatted date or a number.
I often need this information because of net30 invoices (figuring out when to set the due date, how long it’s been since I sent an invoice, etc) and every web site I found to do this was clunky or too much work.
import datetime, sys
def main(argv):
start = None
end = None
diff = 0
for index, arg in enumerate(argv):
if (arg == "-s" or arg == "--start"):
start = datetime.datetime.strptime(argv[index + 1], "%Y-%m-%d")
elif (arg == "-e" or arg == "--end"):
end = datetime.datetime.strptime(argv[index + 1], "%Y-%m-%d")
elif (arg == "-d" or arg == "--diff"):
diff = int(argv[index + 1])
if (start != None and end != None):
print((end - start).days)
elif (start != None and diff != 0):
print(start + datetime.timedelta(diff))
elif (end != None and diff != 0):
print(end - datetime.timedelta(diff))
else:
print('''
Welcome to daycalc
All date formats must be ISO8601, YYYY-MM-DD
-s, --start set start date
-e, --end set end date
-d, --diff set difference
Setting a start and end will return the number of days between the two (exclusive)
Setting a start and a diff will give you the date [d] days after the start date
Setting an end and a diff will give you the date [d] days before the end date
''')
pass
if __name__ == '__main__':
main(sys.argv)