Hi Mark,
You don't need to boil everything into one single number before
decomposing it into another form.
If you start with the years, well, the different sums at most offset you
by 1 as you branch to the next year at somewhat misaligned dates.
Similar with GPS weeks etc.
If you think it through, you can make a first rough estimate, and
correct it step-wise, making sure the ripple rules is properly applied.
Operating in de-composed form isn't all that hard. It is however
important to make test-benches that can check the dates over a wide
range of years. I typically do many centuries, to make sure I got the
Julian ripple rules right.
I made one function which was a bit handy, giving the amount of leap
days since epoch. In this case you would not only need the Julian but
also the Gregorian, and the difference between them would be... your
leap day adjustment.
Cheers,
Magnus
On 05/14/2017 03:58 AM, Mark Sims wrote:
Converting GPS seconds to Gregorian date/time on the Arduino will be an arduous
task. You take GPS seconds and add it to the GPS starring epoch to get a
Julian date. Then add in the number of leap seconds as a fraction of a day to
get UTC and possibly add in a time zone offset for local time. Don't forget to
do daylight savings time conversion... Then convert the result to Gregorian
date/time for display.
The problem is the Arduino floating point library is single precision only and
does not have the resolution needed to handle the numbers involved. Doing it
with integer arithmetic (long longs) opens up a whole new can of worms.
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.