# 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)``````

 Date and Time by Mask Icon from the Noun Project

Last updated by .

Tags:

This site uses Akismet to reduce spam. Learn how your comment data is processed.