import calendar, datetime as dt dD, c, dowx, datex = dt.timedelta(days=1), 0, 6, 1 Y1, M1, D1, Y2, M2, D2 = 1901,1,1, 2000,12,31 dY = Y2-Y1 #num of years Y1 = (Y1%400) + 400 #normalized and non-zero a = dt.datetime(Y1, M1, D1) b = dt.datetime(Y1+dY, M2, D2) while a <= b: if a.day==datex and a.weekday()==dowx: c+=1; dD=dt.timedelta(days=7) a += dD print calendar.day_name[dowx],"on day", datex, "of the month", c