Skip to content

Instantly share code, notes, and snippets.

@sankroh
Created October 29, 2012 02:22
Show Gist options
  • Save sankroh/3971065 to your computer and use it in GitHub Desktop.
Save sankroh/3971065 to your computer and use it in GitHub Desktop.
Converting schedule days of week
from dateutil import rrule, relativedelta
from django.utils.timezone import now, get_default_timezone
import pytz
def main(datetime, weekdays):
tz_day = datetime.weekday()
print "TZ Day:", tz_day
utc_day = datetime.astimezone(pytz.utc).weekday()
print "UTC Day:", utc_day
weekdays = [eval('rrule.%s.weekday' % day) for day in weekdays]
# Check to see if schedule day[0] = start_date.day
if utc_day > tz_day:
# Change schedule d/o/w to be utc_day
for i, day in enumerate(weekdays):
if day == 6:
weekdays[i] = 0
else:
weekdays[i] += 1
elif utc_day < tz_day:
# Change schedule d/o/w to be utc_day
for i, day in enumerate(weekdays):
if day == 0:
weekdays[i] = 6
else:
weekdays[i] -= 1
else:
# Do nothing
pass
weekdays = [str(rrule.weekday(day)) for day in weekdays]
print weekdays
if __name__ == '__main__':
time = now() + relativedelta.relativedelta(days=+1)
time = time.astimezone(get_default_timezone())
weekdays = ['SU', 'MO', 'SA', 'WE']
main(time, weekdays)
time = time + relativedelta.relativedelta(months=+1, hour=+10)
main(time, weekdays)
time = time + relativedelta.relativedelta(hour=+6)
time = time.astimezone(pytz.timezone('Pacific/Auckland'))
main(time, weekdays)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment