2つのdatetime型の期間内の日毎、または月毎にdatetimeを返すジェネレータ start_dateとend_dateの前後関係などは考慮していない # coding=utf-8 from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta def date_span(start_date, end_date): """start_date、end_dateの期間に含まれる日毎のdatetimeオブジェクトを返すジェネレータ """ for n in range((end_date - start_date).days + 1): yield start_date + timedelta(n) def month_span(start_date, end_date)