Объект Date только год и месяц - программирование
Подтвердить что ты не робот

Объект Date только год и месяц

Можно ли создать объект date только год и месяц? Мне не нужен день.

In [5]: from datetime import date

In [6]: date(year=2013, month=1)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-a84d4034b10c> in <module>()
----> 1 date(year=2013, month=1)

TypeError: Required argument 'day' (pos 3) not found

Я использую объект даты в качестве ключа в своем словаре, а 20 января должен иметь тот же ключ, что и 21 января, потому что они находятся в том же месяце и году.

Я использовал простое целое число до того, как это был номер месяца. К сожалению, мне тоже нужно знать год!

4b9b3361

Ответ 1

Нет, вы не можете этого сделать. Для вашего использования используйте вместо этого кортеж:

key = (2013, 1)

Так как вам не нужно делать манипуляции с датами по значению, то кортеж более чем достаточен.

Ответ 2

В качестве дополнения к другому ответу вы можете использовать namedtuple.

from collections import namedtuple
MyDate = namedtuple('MyDate', ['month', 'year'])
dkey = MyDate(year=2013, month=1)

Ответ 3

import datetime

date = datetime.date(year=2013, month=1, day=4)
str(date.year) + '-' + str(date.month)

Ответ 4

Если вы хотите использовать datetime, вы должны следовать его атрибуту. Здесь я цитирую его с официального сайта: "Идеализированная наивная дата, предполагая, что текущий григорианский календарь всегда был и будет всегда действовать, Атрибуты: год, месяц и день". Таким образом, вы не можете игнорировать день и не забывать давать задание.