Tekrarlayan Tarih Oluşturucu
Günlük, haftalık, aylık veya özel aralıklarla tekrarlayan etkinlik tarihleri oluşturur.
Bu araç hakkında
Tekrarlanan Tarih Oluşturucu, el ile hesaplama yapmadan yinelenen olayların tarihlerini hesaplamanıza ve görüntülemenize yardımcı olur. Haftalık takım toplantılarını, aylık fatura ödemelerini veya günlük hatırlatıcıları planliyor olursanız, bu araç başlangıç tarihinize ve yineleme düzenine dayalı olarak ihtiyaç duyduğunuz tüm tarihleri anında oluşturur.
Aracı kullanmak için başlangıç tarihinizi seçin, yineleme türünü (günlük, haftalık, aylık veya yıllık) seçin ve oluşturmak istediğiniz oluşum sayısını ayarlayın. Araç, tüm gelecek olay tarihlerinin eksiksiz bir listesini hemen gösterecek ve siz gerektiğinde kopyalayabilir, dışa aktarabilir veya başvurabilirsiniz. Örneğin her 3 haftada bir veya her 6 ayda bir gibi özel aralıklar da belirtebilirsiniz.
Bu araç proje yöneticileri, etkinlik planlayıcıları ve yinelenen görevleri programlayan herkes için çok değerlidir. El ile tarih hesaplamalarından kaynaklanan hataları ortadan kaldırır ve birden çok tarih arasında toplantıları, abonelikleri veya bakım takvimlerini koordine ederken zaman kazandırır.
Sıkça Sorulan Sorular
Kod Uygulaması
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta # pip install python-dateutil
def generate_recurring_dates(
start: str,
pattern: str,
count: int,
days_of_week: list[int] = None, # 0=Mon..6=Sun, for weekly multi-day
) -> list[str]:
"""
pattern: 'daily' | 'weekly' | 'biweekly' | 'monthly' | 'yearly'
"""
start_date = date.fromisoformat(start)
results = []
if pattern == "weekly" and days_of_week:
# Multi-day-of-week weekly
d = start_date - timedelta(days=start_date.weekday()) # Go to Monday of week
while len(results) < count:
for dow in sorted(days_of_week):
if len(results) >= count:
break
candidate = d + timedelta(days=dow)
if candidate >= start_date:
results.append(candidate.isoformat())
d += timedelta(weeks=1)
return results
current = start_date
for _ in range(count):
results.append(current.isoformat())
if pattern == "daily":
current += timedelta(days=1)
elif pattern == "weekly":
current += timedelta(weeks=1)
elif pattern == "biweekly":
current += timedelta(weeks=2)
elif pattern == "monthly":
current += relativedelta(months=1)
elif pattern == "yearly":
current += relativedelta(years=1)
return results
# Examples
print(generate_recurring_dates("2025-01-06", "weekly", 5))
print(generate_recurring_dates("2025-01-01", "monthly", 6))
print(generate_recurring_dates("2025-01-06", "weekly", 8, days_of_week=[0, 2])) # Mon+Wed
Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.