Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Функционал

Все примеры приводятся на ниже описанных данных:

{
  "days": [
    {
      "id": 1,
      "date": "2025-02-15",
      "start": "09:00",
      "end": "21:00"
    },
    {
      "id": 2,
      "date": "2025-02-16",
      "start": "08:00",
      "end": "22:00"
    },
    {
      "id": 3,
      "date": "2025-02-17",
      "start": "09:00",
      "end": "18:00"
    },
    {
      "id": 4,
      "date": "2025-02-18",
      "start": "12:00",
      "end": "23:00"
    },
    {
      "id": 5,
      "date": "2025-02-18",
      "start": "09:00",
      "end": "18:00"
    }
  ],
  "timeslots": [
    {
      "id": 1,
      "day_id": 1,
      "start": "17:30",
      "end": "20:00"
    },
    {
      "id": 2,
      "day_id": 1,
      "start": "09:00",
      "end": "12:00"
    },
    {
      "id": 3,
      "day_id": 2,
      "start": "14:30",
      "end": "18:00"
    },
    {
      "id": 4,
      "day_id": 2,
      "start": "09:30",
      "end": "11:00"
    },
    {
      "id": 5,
      "day_id": 3,
      "start": "12:30",
      "end": "18:00"
    },
    {
      "id": 6,
      "day_id": 4,
      "start": "10:00",
      "end": "11:00"
    },
    {
      "id": 7,
      "day_id": 4,
      "start": "11:30",
      "end": "14:00"
    },
    {
      "id": 8,
      "day_id": 4,
      "start": "14:00",
      "end": "16:00"
    },
    {
      "id": 9,
      "day_id": 4,
      "start": "17:00",
      "end": "18:00"
    }
  ]
}

Поиск занятых промежутков для указанной даты

Чтобы получить список занятых промежутков для указанной даты можно использовать аргумент busy, при этом передав флаг --date:

python main.py busy --date=2025-02-15

После чего увидим следующий результат:

Все занятые промежутки для 2025-02-15
Начало:  2025-02-15 17:30:00
Конец:   2025-02-15 20:00:00

Начало:  2025-02-15 09:00:00
Конец:   2025-02-15 12:00:00

Поиск свободного времени для заданной даты

Чтобы получить список свободного времени для указанной даты, можно воспользоваться аргументов free, передав флаг --date

python main.py free --date=2025-02-15

Получаем вывод:

Свободное время для 2025-02-15:
С:      12:00:00
До:     17:30:00

С:      20:00:00
До:     21:00:00

Проверка доступен-ли выбранны промежуток для выбранной даты

Чтобы проверить доступно-ли указанное время в указанную дату, используем аргумент check и передаем флаги --date и --time

python main.py check --date=2025-02-15 --time="12:00 13:00"

Смотрим:

Время: 12:00:00 - 13:00:00
Для даты: 2025-02-15, свободно!

Проверка, возможно-ли уместить продолжительность в график

Чтобы проверить можем-ли мы добавить в график выбранную продолжительность, используем аргумент duration и флаг --dur

python main.py duration --dur=3:30

Смотрим вывод:

Дата: 2025-02-15
С:      12:00:00
До:     17:30:00

Дата: 2025-02-16
С:      11:00:00
До:     14:30:00

Дата: 2025-02-17
С:      09:00:00
До:     12:30:00

Дата: 2025-02-18

Структура проекта

Note

  • [📄(🐍)] parse.py - Файл для парсинга JSON с ручки и превращения его в удобный для обработки
  • [📄(🐍)] main.py - Файл с обработкой аргументов и корень проекта
  • [📄(🐍)] formated.py - Форматирование дат и времени в удобный формат
  • [📄(🐍)] arg_handler.py - Классы-обработчики режимов работы
  • [📄(🐍)] annotations.py - Файл с анотациями проекта
  • [📁] test - Папка с тестами

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages