Skip to content

Instantly share code, notes, and snippets.

@lotusirous
Last active November 30, 2016 12:45
Show Gist options
  • Select an option

  • Save lotusirous/1f1cd76ee275debaba310cc5ea9b0951 to your computer and use it in GitHub Desktop.

Select an option

Save lotusirous/1f1cd76ee275debaba310cc5ea9b0951 to your computer and use it in GitHub Desktop.
A python script for generate daily and monthly date in range
import datetime
from dateutil import relativedelta
def daterange(start, end, freq="daily"):
if freq == "daily":
number_of_days = int ((end_date - start_date).days) +1
for n in range(number_of_days):
yield start_date + datetime.timedelta(n)
return
if freq == "monthly":
number_of_months = int((end_date - start_date).days/30) +1
for n in range(number_of_months):
yield start_date + relativedelta.relativedelta(months=n)
return
if freq == "weekly":
number_of_days = int ((end_date - start_date).days) + 1
for n in range(0,number_of_days,7):
yield start_date + datetime.timedelta(n)
return
else:
print("I don't like support other range")
start_date = datetime.date(2007, 1, 3)
end_date = datetime.date(2016, 11, 30)
for single_date in daterange(start_date, end_date,"weekly"):
print (single_date.strftime("%Y-%m-%d"))
# for single_date in daterange(start_date, end_date,"monthly"):
# print (single_date.strftime("%Y-%m"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment