| Index: third_party/mozdownload/mozdownload/timezones.py
 | 
| ===================================================================
 | 
| --- third_party/mozdownload/mozdownload/timezones.py	(revision 0)
 | 
| +++ third_party/mozdownload/mozdownload/timezones.py	(revision 0)
 | 
| @@ -0,0 +1,40 @@
 | 
| +# This Source Code Form is subject to the terms of the Mozilla Public
 | 
| +# License, v. 2.0. If a copy of the MPL was not distributed with this
 | 
| +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | 
| +
 | 
| +"""Module for providing specific timezones"""
 | 
| +
 | 
| +from datetime import datetime, timedelta, tzinfo
 | 
| +
 | 
| +
 | 
| +class PacificTimezone(tzinfo):
 | 
| +    """Class to set the timezone to PST/PDT and automatically adjusts
 | 
| +    for daylight saving.
 | 
| +    """
 | 
| +
 | 
| +    def utcoffset(self, dt):
 | 
| +        return timedelta(hours=-8) + self.dst(dt)
 | 
| +
 | 
| +
 | 
| +    def tzname(self, dt):
 | 
| +        return "Pacific"
 | 
| +
 | 
| +
 | 
| +    def dst(self, dt):
 | 
| +        # Daylight saving starts on the second Sunday of March at 2AM standard
 | 
| +        dst_start_date = self.first_sunday(dt.year, 3) + timedelta(days=7) \
 | 
| +                                                       + timedelta(hours=2)
 | 
| +        # Daylight saving ends on the first Sunday of November at 2AM standard
 | 
| +        dst_end_date = self.first_sunday(dt.year, 11) + timedelta(hours=2)
 | 
| +
 | 
| +        if dst_start_date <= dt.replace(tzinfo=None) < dst_end_date:
 | 
| +            return timedelta(hours=1)
 | 
| +        else:
 | 
| +            return timedelta(0)
 | 
| +
 | 
| +
 | 
| +    def first_sunday(self, year, month):
 | 
| +        date = datetime(year, month, 1, 0)
 | 
| +        days_until_sunday = 6 - date.weekday()
 | 
| +
 | 
| +        return date + timedelta(days=days_until_sunday)
 | 
| 
 | 
| Property changes on: third_party/mozdownload/mozdownload/timezones.py
 | 
| ___________________________________________________________________
 | 
| Added: svn:eol-style
 | 
|    + LF
 | 
| 
 | 
| 
 |