y.today()
фактически возвращает новый объект datetime
с текущей датой, не связанный с datetime
объектом y
, который в данный момент хранится.
Приведенный выше код эквивалентен
y = datetime.strptime('1/1/2016 00:09:55','%m/%d/%Y %H:%M:%S')
print(datetime.today().weekday())
print(datetime.weekday(y)) # or just y.weekday()
Что, понятно, не будет всегда выводить то же самое.