Skip to content

Instantly share code, notes, and snippets.

@binarin
Created July 14, 2014 14:32
Show Gist options
  • Save binarin/e831876133a947b74b10 to your computer and use it in GitHub Desktop.
Save binarin/e831876133a947b74b10 to your computer and use it in GitHub Desktop.
# -*- coding: utf-8 -*-
import sys
import datetime
import calendar
def make_gps_time(bcd_date, bcd_milliseconds):
year = bcd_date % 100;
mon = (bcd_date // 100) % 100;
day = bcd_date // 10000;
msec = bcd_milliseconds % 1000;
v = bcd_milliseconds;
msec = v % 1000; v //= 1000;
sec = v % 100; v //= 100;
min = v % 100; v //= 100;
hour = v % 100; v //= 100;
rmon = mon - 2;
if (0 >= rmon):
rmon += 12;
year -= 1;
ret = (year//4) - 15 + 367*rmon//12 + day;
ret += year*365 + 10501;
ret = ret*24 + hour;
ret = ret*60 + min;
ret = ret*60 + sec;
import pprint
pprint.PrettyPrinter().pprint(locals())
return ret
if __name__ == '__main__':
dt = datetime.datetime.now()
ts = calendar.timegm(dt.timetuple())
bcd_date = dt.strftime("%y%m%d")
bcd_milliseconds = dt.strftime("%H%M%S000")
ret = make_gps_time(int(bcd_date), int(bcd_milliseconds))
import pprint
pprint.PrettyPrinter().pprint(ret - ts)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment