Example #1
0
    print 'Currently we only support one timezone being active, selected: ' + timezones[
        0]
print 'using timezone ' + timezones[0]

timezone = timezone(timezones[0])
start_time = timezone.localize(
    datetime.datetime.combine(start_date, datetime.time.min))
#Check whether DST is active on the serviceday, that means AFTER 3am, hence the +1 day.
dst_active = start_time.timetuple().tm_isdst
if dst_active == 1:
    print 'DST active on start_time, adding one hour to start_time'
calendar_start_time = time.mktime(
    (start_time + timedelta(hours=dst_active)).timetuple())
print 'epoch time at which calendar starts: %d' % calendar_start_time

sids = db.service_ids()
print '%d distinct service IDs' % len(sids)

bitmask_for_sid = {}
dst_mask = 0
for sid in sids:
    bitmask_for_sid[sid] = 0
for day_offset in range(32):
    date = start_date + timedelta(days=day_offset)
    # Add one day because DST is in effect after 3am but all busses will drive after 3am thus in DST.
    time = timezone.localize(
        datetime.datetime.combine(date + timedelta(days=1), datetime.time.min))
    if time.timetuple().tm_isdst == 1:
        dst_mask |= 1 << day_offset
    # db.date_range() is somewhat slow.
    # db.service_periods(sample_date) is slow because it checks its parameters with date_range().
Example #2
0
timezones = db.agency_timezones()
if len(db.agency_timezones()) > 1:
    print 'Currently we only support one timezone being active, selected: '+timezones[0]
print 'using timezone '+timezones[0]

timezone = timezone(timezones[0])
start_time = timezone.localize(datetime.datetime.combine(start_date, datetime.time.min))
#Check whether DST is active on the serviceday, that means AFTER 3am, hence the +1 day.
dst_active = start_time.timetuple().tm_isdst
if dst_active == 1:
    print 'DST active on start_time, adding one hour to start_time'
calendar_start_time = time.mktime((start_time+timedelta(hours=dst_active)).timetuple())
print 'epoch time at which calendar starts: %d' % calendar_start_time

sids = db.service_ids()
print '%d distinct service IDs' % len(sids)
                    
bitmask_for_sid = {}
dst_mask = 0
for sid in sids :
    bitmask_for_sid[sid] = 0
for day_offset in range(32) :
    date = start_date + timedelta(days = day_offset)
    # Add one day because DST is in effect after 3am but all busses will drive after 3am thus in DST.
    time = timezone.localize(datetime.datetime.combine(date + timedelta(days=1), datetime.time.min))
    if time.timetuple().tm_isdst == 1:
        dst_mask |= 1 << day_offset
    # db.date_range() is somewhat slow.
    # db.service_periods(sample_date) is slow because it checks its parameters with date_range().
    # this is very inefficient, but run time is reasonable for now and it uses existing code.