There are exactly 400 intersection moments (occurring at every 216th standard second) between the standard and C10 times, assuming that the tick is always zero.
Setting a C10 clock in a standard time environment is only possible at any of those 400 moments.
// this little program calculates and prints the
// intersection points between standard and C10 times
void main(void) {
unsigned long h,m,s;
float t;
for (h=0; h<24; h++)
for (m=0; m<60; m++)
for (s=0; s<60; s++) {
t=((float)(h*3600+m*60+s)/8.64);
if (t<0) t=10000+t;
if (t==ceil(t)) printf(" %02d:%02d:%02d %02.2f\r\n",h,m,s,t/100);
}
}
Proposed model for C10 world time zones
The world is divided in 10 equally wide zones: 0 to 9, each containing 10 intervals.
The border between zone 9 and zone 0 is where the date is changed.
Zones are only positive numbers.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Why do you use float and not fixed point ?
Are you sure? yes | no
This is actually a very reasonable question... It simply hasn't occurred to me that the whole statement which is using the float can be done only with integer values.
Are you sure? yes | no
I think that you can use a conventional time RTC but run the decimal time based on an internal clock. Then at those intersection intervals synchronize your internal counter (in C10 mode)
Are you sure? yes | no
Correct, but then there is no guarantee that the accuracy will be equally spread over the full day. But I guess it does make sense to have a second RTC for correction every 216 seconds in order to keep greater accuracy.
Are you sure? yes | no
Yep! That's what I meant!
Are you sure? yes | no