code: public static DateTime gpsWeekTime2DateTime( double gpsWeekTime ) {
          double fpart, ipart, unixTime;
          fpart = gpsWeekTime % 1;
          ipart = Math.floor(gpsWeekTime);
          unixTime = ipart + 315964800 - countleaps(ipart, false);
  
          if (isleap(ipart + 1)) {
              unixTime = unixTime + fpart / 2;
          } else if (isleap(ipart)) {
              unixTime = unixTime + (fpart + 1) / 2;
          } else {
              unixTime = unixTime + fpart;
          }
          DateTime dt = new DateTime((long) unixTime * 1000);
          return dt;
      }
docs: Convert GPS Week Time to {@link DateTime}.
  
  @param gpsWeekTime the gps time.
  @return the {@link DateTime} of the gps time.