26 lines
850 B
Python
26 lines
850 B
Python
from datetime import datetime, timezone
|
|
|
|
def format_size(bytes_size):
|
|
"""Convertit une taille en octets en format lisible (Ko, Mo, Go, ...)."""
|
|
for unit in ['o', 'Ko', 'Mo', 'Go', 'To']:
|
|
if bytes_size < 1024:
|
|
return f"{bytes_size:.2f} {unit}"
|
|
bytes_size /= 1024
|
|
return f"{bytes_size:.2f} Po"
|
|
|
|
def calculate_age(uploaded_at_iso):
|
|
uploaded_date = datetime.fromisoformat(uploaded_at_iso.rstrip('Z')).replace(tzinfo=timezone.utc)
|
|
now = datetime.now(timezone.utc)
|
|
delta_days = (now.date() - uploaded_date.date()).days
|
|
|
|
# human
|
|
if delta_days < 30:
|
|
age_human = f"{delta_days} j"
|
|
elif delta_days < 365:
|
|
months = delta_days // 30
|
|
age_human = f"{months} mois"
|
|
else:
|
|
years = delta_days // 365
|
|
age_human = f"{years} ans"
|
|
|
|
return delta_days, age_human |