0

I have code in python like this :

class Market(object):
    def __init__(self, name, date):
        self.name = name
        self.date = date

marketValue = []
marketValue.append(Market("Knife", "2021-07-21"))
marketValue.append(Market("Pan", "2021-07-22"))
marketValue.append(Market("Glass", "2021-07-23"))

for obj in marketValue:
    print(obj.name + " - " + obj.date)

With output :

Knife - 2021-07-21
Pan - 2021-07-22
Glass - 2021-07-23

Can i filter or search in my object list between two dates? For example startDate = '2021-07-21' , endDate = '2021-07-22'. Then And the result is like this, according to search :

Knife - 2021-07-21
Pan - 2021-07-22

Anyone have a solution?

Jhon Smith
  • 93
  • 12

1 Answers1

1

Use datetime module to generate a range of dates -

marketValue = []
marketValue.append(Market("Knife", "2021-07-21"))
marketValue.append(Market("Pan", "2021-07-22"))
marketValue.append(Market("Glass", "2021-07-23"))

startDate = '2021-07-21'
endDate = '2021-07-22'

sd = datetime.date(2021,7,21)

ed = datetime.date(2021,7,22)

dates = [(str(sd.year) + '-0' + str(sd.month)+'-') + str(i) for i in range(sd.day,ed.day+1)]
print(dates)

for obj in marketValue:
    if obj.date in dates:
        print(obj.name + " - " + obj.date)

I hope you get this right!

PCM
  • 2,881
  • 2
  • 8
  • 30