Real-world timedelta Usage
Project Deadline Tracking
from datetime import datetime, timedelta
class ProjectManager:
def __init__(self, start_date, duration_days):
self.start_date = start_date
self.deadline = start_date + timedelta(days=duration_days)
def days_remaining(self):
return (self.deadline - datetime.now()).days
project = ProjectManager(datetime.now(), 30)
print(f"Days left: {project.days_remaining()}")
Scheduling and Reminder Systems
def generate_reminder_dates(start_date, intervals):
reminders = []
for interval in intervals:
reminder_date = start_date + timedelta(**interval)
reminders.append(reminder_date)
return reminders
intervals = [
{'days': 7}, ## 1 week reminder
{'days': 14}, ## 2 weeks reminder
{'days': 30} ## 1 month reminder
]
start_date = datetime.now()
reminder_dates = generate_reminder_dates(start_date, intervals)
Time-based Caching Mechanism
class TimeBasedCache:
def __init__(self, expiry_duration=timedelta(minutes=15)):
self.cache = {}
self.expiry_duration = expiry_duration
def add_item(self, key, value):
self.cache[key] = {
'value': value,
'timestamp': datetime.now()
}
def get_item(self, key):
item = self.cache.get(key)
if item:
age = datetime.now() - item['timestamp']
if age <= self.expiry_duration:
return item['value']
return None
flowchart LR
A[Start Time] --> B[Record Performance]
B --> C{Time Elapsed}
C -->|Within Threshold| D[Normal]
C -->|Exceeds Threshold| E[Alert]
Time Zones and International Scheduling
from datetime import datetime, timedelta
from zoneinfo import ZoneInfo
def schedule_global_meeting():
## Different time zones
us_time = datetime.now(ZoneInfo('America/New_York'))
uk_time = us_time.astimezone(ZoneInfo('Europe/London'))
meeting_duration = timedelta(hours=1)
meeting_end = us_time + meeting_duration
return {
'US Start': us_time,
'UK Equivalent': uk_time,
'Meeting Duration': meeting_duration
}
Practical Usage Scenarios
Scenario |
timedelta Application |
Subscription Renewal |
Calculate expiry dates |
Booking Systems |
Manage reservation periods |
Log Rotation |
Determine log file age |
Session Management |
Track user session duration |
LabEx recommends exploring these practical applications to enhance your Python datetime skills.