         components.second = Int(floor(second))
         components.nanosecond = Int((second-floor(second))*1e6)
         
-        let calendar = Calendar(identifier: .gregorian)
+        var calendar = Calendar.gregorianGMT
         return calendar.date(from: components)!
     }
     

    }
    
    public var year: Int {
        get { return Calendar(identifier: .gregorian).component(.year, from: self) }
    }
    
    public var month: Int {
        get { return Calendar(identifier: .gregorian).component(.month, from: self) }
    }

    public var day: Int {
        get { return Calendar(identifier: .gregorian).component(.day, from: self) }
    }

    public var hour: Int {
        get { return Calendar(identifier: .gregorian).component(.hour, from: self) }
    }

    public var minute: Int {
        get { return Calendar(identifier: .gregorian).component(.minute, from: self) }
    }

    public var second: Int {
        get { return Calendar(identifier: .gregorian).component(.second, from: self) }
    }

    public var nanosecond: Int {
        get { return Calendar(identifier: .gregorian).component(.nanosecond, from: self) }
    }
    
    public var isLeap : Bool {

        components.hour = 0
        components.minute = 0
        components.second = 0
        return Calendar.gregorianGMT.date(from: components)!
    }
    
    public var fractionalYear: Double {
