例如;我在 12 月 8 日 2 点开会,我正在尝试制作一个 python 语音助手,当我发出语音命令时,它将在日历中添加适当的日期作为事件,但它会在当前创建一个事件通过将我作为事件给出的命令添加到日历标题来获取时间和日期,我该如何解决这个问题?
def parse_command(command):
date=datetime.now()
summary = ""
parts = command.split(" ")
for i in range(len(parts)):
if parts[i] == "saat" and i+1 < len(parts):
time = parts[i+1]
elif parts[i] == "tarihinde" and i+1 < len(parts):
try:
date = datetime.strptime(parts[i], "%d/%m/%Y")
except ValueError:
print("Geçersiz tarih formatı. Lütfen gün/ay/yıl formatında girin.")
pass
elif parts[i] != "toplantı":
summary += parts[i] + " "
if date is None or time is None:
return "Tarih veya saat belirtilmedi", None, None
# Zamanı oluştururken, başlangıç ve bitiş zamanları aynı formatta ve tipinde olmalı
start_time = date.strftime("%Y-%m-%dT%H:%M:%S") + "+00:00"
end_time = (date + timedelta(hours=1)).strftime("%Y-%m-%dT%H:%M:%S") + "+00:00"
return summary.strip(), start_time, end_time
您的代码中似乎存在一些问题。首先,您没有正确处理时间部分,其次,您在解析命令时没有更新日期和时间。 示例:
from datetime import datetime, timedelta
def parse_command(command):
current_date = datetime.now()
summary = ""
time = None
parts = command.split(" ")
for i in range(len(parts)):
if parts[i] == "saat" and i + 1 < len(parts):
time = parts[i + 1]
elif parts[i] == "tarihinde" and i + 1 < len(parts):
try:
current_date = datetime.strptime(parts[i + 1], "%d/%m/%Y")
except ValueError:
print("Geçersiz tarih formatı. Lütfen gün/ay/yıl formatında girin.")
pass
elif parts[i] != "toplantı":
summary += parts[i] + " "
if time is None:
return "Saat belirtilmedi", None, None
# Combine the updated date with the specified time
meeting_datetime = datetime.combine(current_date, datetime.strptime(time, "%H:%M").time())
# Zamanı oluştururken, başlangıç ve bitiş zamanları aynı formatta ve tipinde olmalı
start_time = meeting_datetime.strftime("%Y-%m-%dT%H:%M:%S") + "+00:00"
end_time = (meeting_datetime + timedelta(hours=1)).strftime("%Y-%m-%dT%H:%M:%S") + "+00:00"
return summary.strip(), start_time, end_time
# Example usage:
command = "toplantı saat 14:00 tarihinde"
summary, start_time, end_time = parse_command(command)
print(f"Summary: {summary}\nStart Time: {start_time}\nEnd Time: {end_time}")