Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 14.04.2021
Сообщений: 8

datetime, работа с датами

27.05.2021, 17:46. Показов 3883. Ответов 17

Студворк — интернет-сервис помощи студентам
В библиотеке переучет каждый третий четверг месяца. Напишите функцию output(date), которая по заданной дате date (тип datetime.date) возвращает количество дней до следующего переучета.
Используя библиотеку datetime

Пример
Ввод: 2025-05-03
Вывод 12

Спасибо заранее
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.05.2021, 17:46
Ответы с готовыми решениями:

Работа с датами
здравствуйте, код: from datetime import datetime, date # дни недели - MO=Понедельник=Monday, TU=Вторник=Tuesday, WE=Среда=Wednesday,...

Работа с датами
Не понимаю как можно сделать вывод месяца и дней Пользователь вводит дату в формате ДД.ММ.ГГГГ. Вывести первый день месяца, ...

Работа с датами
Всем привет господа программисты, прошу помощи. У меня есть функция которая принимает в себя дату формата 2021-04-19. нужно написать...

17
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
27.05.2021, 19:25
Gramatey, прочти доку по datetime. и сам все решишь, спасибо заранее.
0
27.05.2021, 21:06

Не по теме:

Welemir1, хотелось бы увидеть Python-way решение))

0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
27.05.2021, 21:09
Лучший ответ Сообщение было отмечено Arsegg как решение

Решение

Arsegg, это?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedelta, TH
 
def output(data):
    new_date = data+relativedelta(day=1, weekday=TH(3))
    if new_date <= data:
        new_date = data+relativedelta(months=+1, day=1, weekday=TH(3))
    print(new_date)
    return (new_date - data).days
 
 
dt = '2021-07-15'
dt = date(*map(int, dt.split('-')))
print(output(dt))
1
27.05.2021, 21:15

Не по теме:

Gdez, не знал про dateutil.relativedelta. Спасибо!

0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
27.05.2021, 21:24
Arsegg, "прямым" способом там строчек 10 будет...
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.05.2021, 08:47
подскажите, weekday=будний день
Python
1
print(dt_today + relativedelta(weekday=4))
понедельник=0?
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
28.05.2021, 09:44
Ципихович Эндрю, да , но такая запись не корректна -> лучше для weekday использовать
Python
1
weekday=MO(+i)
или
Python
1
weekday=MO(-i)
Так он показывет при +1 следующий понедельник, при -1 предыдущий...
i - любое целое число недель
Дни недели - MO, TU, WE, TH, FR, SA, SU
Более полно тут https://dateutil.readthedocs.i... delta.html
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.05.2021, 09:56
понял, спасибо
Цитата Сообщение от Gdez Посмотреть сообщение
from dateutil.relativedelta import relativedelta, TH
TH=Четверг=Thursday
а что нет возможности все дни загрузить сразу, как?
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
28.05.2021, 10:04
Ципихович Эндрю,
Python
1
from dateutil.relativedelta import relativedelta, MO, TU, WE, TH, FR, SA, SU
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.05.2021, 10:07
Цитата Сообщение от Gdez Посмотреть сообщение
MO, TU, WE, TH, FR, SA, SU
спору нет, спасибо))
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
28.05.2021, 10:30
Но в документации к 3.8 ссылка на страницу, где говорится

Installation

dateutil can be installed from PyPI using pip (note that the package name is different from the importable name):

pip install python-dateutil

То есть нужно установить внешний пакет.
Может конечно в 3.9 он уже встроен? Не знаю.
1
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
28.05.2021, 10:33
Viktorrus, "спасаюсь" анакондой
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.05.2021, 10:34
петров х
Цитата Сообщение от Viktorrus Посмотреть сообщение
Может конечно в 3.9 он уже встроен? Не знаю
не встроен
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
28.05.2021, 10:34
Я к тому, что бы ТС обратил на это внимание.
0
28.05.2021, 10:53

Не по теме:

Цитата Сообщение от Viktorrus Посмотреть сообщение
Может конечно в 3.9 он уже встроен? Не знаю.
Я лично удивился, когда без установки всяких зависимостей у меня на Python 3.8 запустился. Видимо, с какой-то другой зависимостью идет в комплекте.

0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,319
28.05.2021, 10:57
как по мне 21 век и по хорошему import datetime должно для всего хватать
без всяких динозавров
Цитата Сообщение от Gdez Посмотреть сообщение
MO, TU, WE, TH, FR, SA, SU
а лучше вообще без импорта встроить как и re, кто за?
0
Эксперт Python
8849 / 4501 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
28.05.2021, 11:08
Ципихович Эндрю, можно...
Для текущей задачи:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from datetime import datetime, date, timedelta
 
def output(data):
    dtmp = date(data.year, data.month, 1)
    wd_1 = datetime.isoweekday(dtmp)
    delta = (4 - wd_1) % 7 + 14
    ww = dtmp + timedelta(delta)
 
    if ww <= data:
        while ww.month == data.month:
            ww += timedelta(7)
        ww += timedelta(14)
 
    return (ww - data).days
    
    
dt = '2021-06-17'
dt = date(*map(int, dt.split('-')))
print(output(dt))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.05.2021, 11:08
Помогаю со студенческими работами здесь

Работа с датами
есть перечень продуктов в файле txt у них есть дата поступления?срок хранения 30 дней .Как вычислить просроченные?

Из string в DateTime. Работа с датами и временем
Почему не получается применить ToShortDateString() к getLastThursday(date) при выводе? &quot;Не удается преобразовать из string в...

SQLite. Работа с DateTime. Как вытащить из БД и конвертировать в формат DateTime
У меня таблица SQLite Есть колонка INTEGER которая хранит значение типа &quot;2018-06-09 16:10:00&quot; Строка =...

Работа с DateTime
Нужно узнать сколько лет прошло, взять текущую дату 05.11.2010 и отнять определенную дату 06.11.2005 и вычислить сколько круглых лет прошло...

Работа с DateTime
Есть List с объектами (DateTime datetime, int x). datetime в секундах, x - в пикселях монитора. Хочу построить график: горизонтальная ось -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru