Skip to content

Instantly share code, notes, and snippets.

@arifsuhan
Last active June 15, 2024 13:54
Show Gist options
  • Save arifsuhan/4dc59e5289ed7da3a0399b8cacdbb1b8 to your computer and use it in GitHub Desktop.
Save arifsuhan/4dc59e5289ed7da3a0399b8cacdbb1b8 to your computer and use it in GitHub Desktop.
netflix timeline inspiration from https://www.netflix.com/tudum/top10
from Timeline import *
start_date = '2021-06-27'
end_date = '2024-06-15'
timelines = Timeline(start_date,end_date).run()
print(timelines)
from datetime import datetime, timedelta
class Timeline:
def __init__(self,start_date,end_date,date_format=0):
self.default_format = '%Y-%m-%d'
self.myformat = self.get_date_format(date_format)
self.start_date = self.process_date(start_date)
self.end_date = self.process_date(end_date)
def process_date(self,mydate):
return datetime.strptime(datetime.strptime(mydate,self.default_format).strftime(self.myformat),self.myformat)
def get_date_format(self,flag):
if flag == 1:
return '%Y-%m-%d'
else:
return '%Y%m%d'
def count_weeks(self):
delta = self.end_date - self.start_date
weeks = delta.days // 7
return weeks
def generate(self, num_weeks):
dates = []
for i in range(num_weeks+1):
current_date = self.start_date + timedelta(weeks=i)
dates.append(current_date.strftime(self.myformat))
return dates
def run(self):
num_weeks = self.count_weeks()
weekly_dates = self.generate(num_weeks)
# print(num_weeks)
return [date for date in weekly_dates]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment