So I have a script that has date arguments for different functions and I want it to loop through 01-01-2012
to 06-09-2012
not including weekends. Im trying to figure out a way I can use time delta because my script outputs files with the date used in the name of the file for example:
items = (functions.getItems(item,date)
print items
test = sum(abs(l[-1]) for l in items)
total = open('total' +str(datetime.today- datetime.timedelta(1)),'a')
I want timedelta(1) to cycle through each date so that the output file would have the format of total2012-01-01
for the first day and cycle through until it created the file total2012-06-09
. Also the date argument for items has the format of MM-DD-YYYY
I thought that I could do this:
sd = 01-01-2012
ed = 06-09-2012
delta = datetime.timedelta(days=1)
diff = 0
while sd != ed
# do functions
# (have output files (datetime.today - datetime.delta(diff))
diff +=1
sd+=delta
So essentially I'm just trying to figure out how can I loop through having the function start with 01-01-2012
and ending with 06-10-2012
excluding weekends. I'm having trouble figuring out how to exclude weekends and how to get it to loop in the proper order
Thanks
Use the datetime.weekday()
method. It returns values between zero and six, related to the weekdays. Saturday value is 5 and Sunday value is 6; so, if you skip the operation when these values appear, you skip weekdends:
start = datetime(2012, 1, 1)
end = datetime(2012, 10, 6)
delta = timedelta(days=1)
d = start
diff = 0
weekend = set([5, 6])
while d <= end:
if d.weekday() not in weekend:
diff += 1
d += delta
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With