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

Получить список даты понедельно

12.10.2020, 10:33. Показов 7471. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Нужно получить список даты по недельно.
Например:
Конец: 2020-09-21
Начало: 2020-09-01
Вывод: [['2020-09-01', '2020-09-07'], ['2020-09-07', '2020-09-14'], ['2020-09-14', '2020-09-21']]
или
Конец: 2020-09-16
Начало: 2020-09-01
Вывод: [['2020-09-01', '2020-09-07'], ['2020-09-07', '2020-09-14'], ['2020-09-14', '2020-09-16']]


Добавлено через 1 минуту
сейчас есть:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from datetime import datetime, timedelta
 
 
def week(start, end):
    ostatok = end.day % 7
    if ostatok  == 0:
        print(end.day / 7)
    new = end - timedelta(days=ostatok)
    print(new)
 
 
 
time = datetime.now() + timedelta(days=2)
two = datetime.now() - timedelta(days=11)
week(two, time)
но я не знаю что делать дальше
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.10.2020, 10:33
Ответы с готовыми решениями:

Как сравнить 2 даты и получить список дат с определенным интервалом
САБЖ. Таблица такая: 2012-02-06 17:00:00 в одной колонке. И 2012-02-06 19:30:00 в другой колонке. Как между ними получить...

Получить список файлов и узнать даты их изменения в известном каталоге?
вот, собственно, и весь вопрос :)

Получить список игрушек одного типа и получить список фирм-производителей,выпускающих одну и туже игрушку с ценой от 30
А)Получить список игрушек одного типа. Б)Получить список фирм-производителей, выпускающих одну и туже игрушку с ценой от 30 до 200...

12
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
12.10.2020, 11:35
Python
1
2
3
4
5
6
begin = datetime.strptime('2020-09-01', '%Y-%m-%d')
end = datetime.strptime('2020-09-21', '%Y-%m-%d')
 
delta = (end - begin).days
for i in range(0, delta, 7):
    print(i)
Добавлено через 35 секунд
хотя если надо искать понедельник...

Добавлено через 4 минуты
Python
1
2
3
4
5
6
7
begin = datetime.strptime('2020-09-01', '%Y-%m-%d')
end = datetime.strptime('2020-09-21', '%Y-%m-%d')
 
delta = begin.weekday()
if delta != 0:
    begin = begin - timedelta(days=delta)
print(begin)
1
1 / 1 / 0
Регистрация: 04.03.2019
Сообщений: 70
13.10.2020, 16:43  [ТС]
Рыжий Лис, сделал на основе вашего кода, такой:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin = datetime.strptime('2020-09-01', '%Y-%m-%d')
end = datetime.strptime('2020-09-21', '%Y-%m-%d')
 
 
dat = []
delta = (end - begin).days
for i in range(0, delta, 7):
    date = None
    if i != 0:
        date = begin.replace(day=i)
    else:
        date = begin.replace(day=i+1)
 
    dat.append([date.strftime("%Y-%m-%d")])
 
print(dat)
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.10.2020, 16:52
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
delta = begin.weekday()
if delta != 0:
    begin = begin - timedelta(days=delta)
 
dat = []
delta = (end - begin).days
for i in range(0, delta, 7):
    b = begin + timedelta(days=i)
    e = begin + timedelta(days=i + 7)
    dat.append([b.strftime("%Y-%m-%d"), e.strftime("%Y-%m-%d")])
 
print(dat)
# [['2020-08-31', '2020-09-07'],
# ['2020-09-07', '2020-09-14'],
# ['2020-09-14', '2020-09-21']]
1
1 / 1 / 0
Регистрация: 04.03.2019
Сообщений: 70
13.10.2020, 17:10  [ТС]
Рыжий Лис,

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dat = []
delta = (end - begin).days
for i in range(0, delta, 7):
    date = None
    endd = None
    if i != 0:
        date = begin.replace(day=i)
    else:
        date = begin.replace(day=i + 1)
 
    if end.day < i+7:
        endd = date.replace(day=end.day).strftime("%Y-%m-%d")
    else:
        endd = date.replace(day=i + 7).strftime("%Y-%m-%d")
 
    dat.append([date.strftime("%Y-%m-%d"), endd])
#[['2020-09-01', '2020-09-07'], 
#['2020-09-07', '2020-09-14'],
#['2020-09-14', '2020-09-21'], 
#['2020-09-21', '2020-09-27']]
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.10.2020, 17:19
Ну не знаю. Как по мне - так это подгонка результата.
0
1 / 1 / 0
Регистрация: 04.03.2019
Сообщений: 70
13.10.2020, 18:20  [ТС]
Рыжий Лис, как сделать вывод русскими сивмолами?

Code
1
Oct
а надо
Code
1
Окт.
Добавлено через 10 минут
Рыжий Лис, а можно от ПН отсчитывать как нибудь?
Вот что я сделал, только надо от пн
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    begin = datetime.strptime(begin, '%Y-%m-%d')
    end = datetime.strptime(end, '%Y-%m-%d')
    dat = []
 
    delta = begin.weekday()
 
    for i in range(0, delta, 7):
        date = None
        endd = None
        if i != 0:
            date = begin.replace(day=i)
        else:
            date = begin.replace(day=i + 1)
 
        if end.day < i + 7:
            endd = date.replace(day=end.day).strftime("%Y-%m-%d")
        else:
            endd = date.replace(day=i + 7).strftime("%Y-%m-%d")
 
        dat.append([date.strftime("%Y-%m-%d"), endd])
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
13.10.2020, 18:22
Цитата Сообщение от _shut_ Посмотреть сообщение
а можно от ПН отсчитывать как нибудь?
Ты издеваешься? Отмотай назад Получить список даты понедельно
0
1 / 1 / 0
Регистрация: 04.03.2019
Сообщений: 70
13.10.2020, 18:42  [ТС]
Рыжий Лис,

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    begin = datetime.strptime(begin, '%Y-%m-%d')
    end = datetime.strptime(end, '%Y-%m-%d')
    dat = []
 
    delta = begin.weekday()
    
 
    for i in range(0, delta, 7):
        date = None
        endd = None
        date = begin - timedelta(days=delta)
 
        if end.day < i + 7:
            endd = date.replace(day=end.day).strftime("%Y-%m-%d")
        else:
            endd = date.replace(day=date.day + 7).strftime("%Y-%m-%d")
 
        dat.append([date.strftime("%Y-%m-%d"), endd])
получилось это, но оно не работает
0
1 / 1 / 0
Регистрация: 04.03.2019
Сообщений: 70
14.10.2020, 17:53  [ТС]
Рыжий Лис, ещё не решил

Добавлено через 29 минут
Рыжий Лис, я не могу решить, хэлп
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
14.10.2020, 19:24
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from datetime import datetime, timedelta
def get_week_list(begin, end):
    begin = datetime.strptime(begin, '%Y-%m-%d')
    end = datetime.strptime(end, '%Y-%m-%d')
    delta = begin.weekday()
    monday = begin - timedelta(days=delta)
 
    dat = []
    delta = (end - monday).days
    for i in range(0, delta, 7):
        b = monday + timedelta(days=i)
        e = monday + timedelta(days=i + 7)
        if b < begin:
            b = begin
        if e > end:
            e = end
        dat.append([b.strftime("%Y-%m-%d"), e.strftime("%Y-%m-%d")])
    return dat
print(get_week_list("2020-09-01", "2020-09-21"))
Так?
1
1 / 1 / 0
Регистрация: 04.03.2019
Сообщений: 70
15.10.2020, 18:27  [ТС]
КулХацкеръ, нет
0
710 / 356 / 104
Регистрация: 09.02.2018
Сообщений: 805
15.10.2020, 19:03
Что не так? Подробнее плиз.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.10.2020, 19:03
Помогаю со студенческими работами здесь

Как менять картинку понедельно?
Help!!! Как сделать на Java'е так, чтобы картинка менялась с воскресенья на понедельник? Буду рад любым предложениям. Это мне нужно...

РАБОТА, 2 вакансии Perl и C++, ОПЛАТА понедельно от 500уе-650уе в НЕДЕЛЮ
День добрый, На сегодняшний день есть две свободных вакансии, детали по ним ниже. Если вы чувствуете что подходите нам, вышлите нам в...

Получить даты файлов за несколько дней и вывести в лог (контроль даты файлов)
Добрый день нужен батник следующего функционала: есть папка с 8-ю зип архивами (ежесуточный бекап) нужен батник который будет...

Связный список (Используя структуру описания даты, построить связный список студентов, сформированный в алфавитном порядке)
Здраствуйте! Помогите пожалуйста найти косяк. Выводится только первая строчка из списка студентов. Вот такая задачка : Программа...

Как получить список директорий и список файлов в директории?
Очень нужно организовать поиск на диске. Как искать в нутри файла я знаю, а вот как искать вовсех файлах на диске и в поддиректориях незная


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru