UVA 893 - Y3K Problem: Handling Python years above 9999
I was working on a problem in UVA online judge where I needed to do a simple data addition. However, the catch was year can go beyond 9999 (which is the limit in python). Below code is the python solution for this problem. I simply divided the date-delta with (1200 years, i.e. 438291 days) and added it separately after the computation. If you have unclear areas, let me know in the comments.
import datetime
from sys import stdin
div = 438291
for line in stdin:
delta, d, m, y = map(int, line.split()[:4])
if d != 0:
a = int(delta / div)
delta3 = delta % div
d_2000 = datetime.date(day=1, month=1, year=2000)
d_start = datetime.date(day=d, month=m, year=y)
delta2 = (d_2000 - d_start).days
delta3 -= delta2
d_end = d_2000 + datetime.timedelta(days=delta3)
print(d_end.day, d_end.month, d_end.year + a * 1200)
else:
exit(0)
[1] Date and Time by Mask Icon from the Noun Project
Enjoy Reading This Article?
Here are some more articles you might like to read next: