Как можно создать функцию, которая делила бы неделю на два типа? Python, datetime
Я совсем недавно начал писать на Python и решил написать своего бота, который работал бы, как расписание.
Вот сам код:
url = "<токен>"
bot = telebot.TeleBot(token=url)
def get_chat_id(update):
chat_id = update['message']["chat"]["id"]
return chat_id
def get_message_text(update):
message_text = update["message"]["text"]
return message_text
def last_update(req):
response = requests.get(req + "getUpdates")
result = response["result"]
return result[total_updates]
def send_message(chat_id, message_text):
params = {"chat_id": chat_id, "text": message_text}
response = requests.post(url + "sendMessage", data=params)
return response
def main():
a = (datetime.date.today())
update_id = last_update(url)["update_id"]
while True:
update = last_update(url)
if update_id == update["update_id"]:
if get_message_text(update).lower() == "пн" or get_message_text(update).lower() == "понедельник":
send_message(get_chat_id(update), "пары на понедельник)
И в подобном духе на всю неделю, однако, я бы хотел спросить, как можно было бы создать скрипт, деливший недели на условный "числитель" и "знаменатель"? Нужно это, потому что в разные недели бывают разные пары. Буду премного благодарен.
Ответы (2 шт):
Автор решения: n1tr0xs
→ Ссылка
Если недели чередуются так: 1й тип, 2й тип, 1й тип, 2й тип, т.д.. Вам может подойти этот код:
from datetime import datetime, timedelta
def what_week_now():
my_date = datetime(2020, 2, 3) # год, месяц, день опорной недели
days = (datetime.now()-my_date).days # сколько дней разницы
days -= days%7 # выравниваем на понедельник
if days%14==0:
return 1 # тот же тип недели
else:
return 0 # другой тип недели
Автор решения: Last_Arkhangel
→ Ссылка
import datetime
def what_week_now(message):
nums = int(datetime.datetime.utcnow().isocalendar()[1])
dt = datetime.datetime.now().strftime('%d.%m.%Y')
if (nums % 2) == 0:
msg = f"Сьогодні {dt} (поточний тиждень №{nums}) - ? <b>Знаменник</b>\n"
if (nums % 2) != 0:
msg = f"Сьогодні {dt} (поточний тиждень №{nums}) - ? <b>Чисельник</b>\n"
bot.send_message(message.chat.id, msg, parse_mode='HTML')