Питона календарь Модуль является частью стандартной библиотеки. Он позволяет выводить календарь по месяцам или годам, а также предоставляет другие функции, связанные с календарем.
календарь Сам модуль зависит от модуля datetime. Но нам также понадобится Дата и время позже для наших собственных целей, поэтому лучше импортировать оба из них. Кроме того, для того, чтобы сделать некоторое разбиение строки, нам понадобится ре модуль. Давайте импортировать их все за один раз.
По умолчанию календари начинаются с понедельника (день 0), согласно европейскому соглашению, и заканчиваются с воскресенья (день 6). Если вы предпочитаете воскресенье в качестве первого дня недели, используйте setfirstweekday () способ изменить значение по умолчанию на 6 день следующим образом:
Для переключения между ними вы можете передать первый день недели в качестве аргумента, используя системный модуль. Затем вы проверите значение с если заявление и установить setfirstweekday () метод соответственно.
В нашем календаре было бы неплохо иметь заголовок для календаря, который бы читал что-то вроде «Python-Generated Calendar for ...» и имел текущий месяц и год. Для этого нам нужно получить месяц и год из системы. Эта функциональность является то, что
календарь обеспечивает, Python может получить месяц и год. Но у нас все еще есть проблема. Поскольку все системные даты являются числовыми и не содержат сокращенных или нечисловых форм месяцев, нам необходим список этих месяцев. Введите список год.Теперь, когда мы получаем номер месяца, мы можем получить доступ к этому номеру (минус один) в списке и получить полное название месяца.
Любопытно, что Дата и время модуль имеет Дата и время учебный класс. Именно из этого класса мы называем два объекта: сейчас() и Дата(). Метод datetime.datetime.now () возвращает объект, содержащий следующую информацию: год, месяц, дата, час, минута, секунда и микросекунды. Конечно, нам не нужна информация о времени. Чтобы исключить информацию о дате, мы передаем результаты сейчас() в datetime.datetime.date () в качестве аргумента. Результатом является то, что сегодня теперь содержит год, месяц и дату, разделенные тире.
Чтобы разбить этот бит данных на более управляемые части, мы должны разделить его. Затем мы можем назначить части переменных current_yr, текущий месяц, и текущий день соответственно.
Чтобы понять первую строку этого кода, работайте справа налево и изнутри наружу. Во-первых, мы стренифицируем объект сегодня чтобы оперировать им как строкой. Затем мы разделяем его, используя em-dash в качестве разделителя или токена. Наконец, мы присваиваем эти три значения в виде списка «текущий».
Чтобы разобраться с этими значениями более отчетливо и назвать длинное имя текущего месяца из годмы присваиваем номер месяца current_no. Затем мы можем сделать небольшое вычитание в нижнем индексе год и назначьте название месяца текущий месяц.
В следующей строке требуется немного подстановки. Дата, которая возвращается с Дата и время это двузначное значение даже для первых девяти дней месяца. Ноль служит заполнителем, но мы бы предпочли, чтобы в нашем календаре была только одна цифра. Таким образом, мы не подставляем никакого значения для каждого нуля, начинающего строку (отсюда '\ A'). Наконец, мы назначаем год current_yr, преобразовав его в целое число по пути.
Методы, которые мы будем вызывать позже, потребуют ввода в целочисленном формате. Поэтому важно убедиться, что все данные даты сохранены в целочисленной, а не строковой форме.
Прежде чем распечатать календарь, нам нужно распечататьHTML преамбула и CSS верстка для нашего календаря. Перейдите на эту страницу, чтобы получить код для печати преамбулы CSS и HTML для календаря. и скопируйте код в файл вашей программы. CSS в HTML-файле этого файла следует шаблону, предложенному Дженнифер Кирнин, Справочное руководство по веб-дизайну. Если вы не понимаете эту часть кода, вы можете обратиться к ее справке для изучения CSS и HTML. Наконец, чтобы настроить название месяца, нам нужна следующая строка:
Теперь, когда выводится основной макет, мы можем настроить сам календарь. Календарь, по своей сути, представляет собой таблицу. Итак, давайте сделаем таблицу в нашем HTML:
Теперь нам нужно создать актуальный календарь. Чтобы получить фактические данные календаря, нам нужно календарь модуля MonthCalendar () метод. Этот метод принимает два аргумента: год и месяц нужного календаря (оба в целочисленной форме). Возвращает список, который содержит списки дат месяца за неделей. Таким образом, если мы посчитаем количество элементов в возвращаемом значении, у нас будет количество недель в данном месяце.
Зная количество недель в месяце, мы можем создать за цикл, который считает через ассортимент() от 0 до количества недель. Когда это произойдет, он распечатает остальную часть календаря.
После того, как этот диапазон был запущен, даты недели отбираются из месяц в соответствии со значением счетчика и назначается неделя. Затем создается табличная строка для хранения календарных дат.
за Затем цикл проходит по дням недели, чтобы их можно было проанализировать. календарь Модуль печатает «0» для каждой даты в таблице, которая не имеет допустимого значения. Пустое значение будет работать лучше для наших целей, поэтому мы печатаем выходные данные табличных данных без значения для этих дат.
Далее, если день является текущим, мы должны как-то выделить его. На основе тд учебный класс сегодняCSS этой страницы будет отображать текущую дату на темном фоне вместо светлого фона других дат.
Наконец, если дата является допустимым значением и не является текущей датой, она печатается в виде табличных данных. Точные цветовые комбинации для них содержатся в преамбуле стиля CSS.
Просто этот простой календарь можно использовать любым способом, который требует представления календаря. С помощью гиперссылки на даты в HTML можно легко создать функциональность дневника. Кроме того, можно проверить по файлу дневника, а затем отразить, какие даты взяты по их цвету. Или, если кто-то преобразует эту программу в CGI-скрипт, он может быть сгенерирован на лету.