diff --git a/gitgen.py b/gitgen.py
index 9053b05..773ce52 100644
--- a/gitgen.py
+++ b/gitgen.py
@@ -154,7 +154,8 @@ class GitRepoScanner:
months_data = []
for i in range(11, -1, -1):
- month_date = today - datetime.timedelta(days=i*30)
+ total_months = today.year * 12 + (today.month - 1) - i
+ month_date = datetime.date(total_months // 12, total_months % 12 + 1, 1)
year_month = month_date.strftime('%Y-%m')
month_label = month_date.strftime('%b')
commit_count = monthly_commits.get(year_month, 0)