first commit
هذا الالتزام موجود في:
47
date_utils.py
Normal file
47
date_utils.py
Normal file
@@ -0,0 +1,47 @@
|
||||
"""
|
||||
Date utility functions for TODO MCP server.
|
||||
"""
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Optional
|
||||
|
||||
|
||||
def parse_relative_date(relative_days: int) -> str:
|
||||
"""
|
||||
Convert a relative day offset to an absolute date string.
|
||||
|
||||
Args:
|
||||
relative_days: Number of days relative to today
|
||||
0 = today
|
||||
+1 = tomorrow
|
||||
-1 = yesterday
|
||||
+7 = one week from now
|
||||
|
||||
Returns:
|
||||
Date string in YYYY-MM-DD format
|
||||
|
||||
Examples:
|
||||
>>> parse_relative_date(0) # today
|
||||
'2025-12-18'
|
||||
>>> parse_relative_date(1) # tomorrow
|
||||
'2025-12-19'
|
||||
>>> parse_relative_date(-1) # yesterday
|
||||
'2025-12-17'
|
||||
"""
|
||||
target_date = datetime.now() + timedelta(days=relative_days)
|
||||
return target_date.strftime("%Y-%m-%d")
|
||||
|
||||
|
||||
def get_date_for_query(relative_days: Optional[int]) -> Optional[str]:
|
||||
"""
|
||||
Convert relative days to date string for queries, or return None if not specified.
|
||||
|
||||
Args:
|
||||
relative_days: Optional relative day offset
|
||||
|
||||
Returns:
|
||||
Date string in YYYY-MM-DD format, or None if relative_days is None
|
||||
"""
|
||||
if relative_days is None:
|
||||
return None
|
||||
return parse_relative_date(relative_days)
|
||||
المرجع في مشكلة جديدة
حظر مستخدم