![]() |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
![]()
Why the US wants to end link between time and sun:
http://www.post-gazette.com/pg/05210/545823.stm Best, Stephen Remove footfrommouth to reply -- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Stephen Tonkin | ATM Resources; Astro-Tutorials; Astro Books + + (N51.162 E0.995) | http://astunit.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + |
#2
|
|||
|
|||
![]()
Strikes me as lazines on the part of commercial programmers. This
smacks of an underlying reversion to rigid, stone-age religious attitudes to the perfection of the Solar System. How difficult is it for programmers to add a second every leap year? Chris.B |
#3
|
|||
|
|||
![]()
On Sun, 31 Jul 2005 10:39:54 +0100, Stephen Tonkin
wrote: Why the US wants to end link between time and sun: http://www.post-gazette.com/pg/05210/545823.stm But the article say that bizznezz wants it that way so it must be correct. Since when has bizznezz been wrong about anything?? ![]() |
#4
|
|||
|
|||
![]() "Chris.B" said Strikes me as lazines on the part of commercial programmers. This smacks of an underlying reversion to rigid, stone-age religious attitudes to the perfection of the Solar System. How difficult is it for programmers to add a second every leap year? But it isn't a second every leap year. There have been 22 'leap seconds' since 1972 - the last was 1998 - and there will be one this year. The whole point is that the speed of the earth around the sun is not an absolute constant and that is the issue that is being addressed. JG |
#5
|
|||
|
|||
![]() "Stephen Tonkin" wrote in message ... Why the US wants to end link between time and sun: http://www.post-gazette.com/pg/05210/545823.stm Best, Stephen ...."It's not like someone's going to be going to school at four in the afternoon or something," he said.... I don't think the proposal will get through. I remember comming out of school at 3:30 pm in the middle of winter and it was already getting dark. I got home by 4PM, by 4:30PM it was dark! How arrogant do this American's think they are? No, missing one or two seconds won't matter that much in every day use, but when that turns into 30mins, it will start to have massive impact. Kids _will_ be going to school, or comming home at night in the dark, and isn't that the main reason why we still keep Summer and Winter time? Making a leap hour won't solver the problems for programmers either. All it will do is puch the rug under the carpet. As a programmer myself I fully understand this part of the issue and can explain it.... Date and times are stored on a computer by using an Real number (that's a number will an integer part, and a fraction) The Integer part of the date is the number of days from a given Epoch (Normally, 31-Dec-1899, so day 1 is 1-Jan-1900). The time part is stored in the fractional part of the day. so 1.5 is midday on 1-Jan-1900, and 1.25 is 6 Am that morning. This is similar to the Julian date format. This presents the problem that adding a leap second cannot be done, because there's no place for it to go. The problem with a leap hour is exactly the same, as there's no place for it to go. The only possible solution for it would be for a leap day, which would also make programmers crinch, as they'd need to write a routine to add an extra day every few thousand years. But then kids really would be going to school a 4 in the morning. How to programmers get around the leap second problem? Most of them ignore it! About 90% of the worlds software uses dates and times to record when things happened. Their systems don't aren't accurate anyway, so then something says 30:17:25 is could be anything up to about 5 minutes either way. With atomic clocks now available via the internet, most computers are to within about 2 seconds though. The few cases where the time is critical, space missions, aircraft flights, and other places like that, they should also not need to worried about leap seconds. How, that's easy. Take an aircraft, it should set it's local time just before departure then for the entire duration of that flight use a local epoch, you know, just like what the shuttle missions do "T-10 seconds and counting" - ring any bells? Even if this local time is out of sync for a few days it doesn't matter. Other systems like air traffic control should implement leap seconds. However, for flight instrumentation there should be a method for detecting that one of these have passed, so that a conversion between UTC and Local time can take place. Besides, of the US Proposal of using a leap hour instead of a leap second did happen, can you imaging the hassle that would cause? Anyone remember the panic, and money spend solving the millenium bug? Oh and yes the problem was real, but as usual, it got overhyped by the press. Having a leap hour would cause alot more hassle than a leap seconds, which most programs can simply ignore. The leap hour would need to be catered for, by the 90% of programs that in all honesty couldn't care less about a 1 seconds inaccuracy, as long as it's not permenant. Regards Colin Dawson www.cjdawson.com |
#6
|
|||
|
|||
![]()
JRS: In article ,
dated Sun, 31 Jul 2005 11:46:34, seen in news:uk.sci.astronomy, Colin Dawson posted : Making a leap hour won't solver the problems for programmers either. All it will do is puch the rug under the carpet. As a programmer myself I fully understand this part of the issue and can explain it.... Date and times are stored on a computer by using an Real number (that's a number will an integer part, and a fraction) That's but one way; common, but not good. DOS, for example (and Windows too), does it differently. The Integer part of the date is the number of days from a given Epoch (Normally, 31-Dec-1899, so day 1 is 1-Jan-1900). That is merely one way of doing it, originated by incompetents of manifest nationality. While that was the intention, they forgot to exclude 1900-02-29; thus Day 1 is 1899-12-31, local time. The time part is stored in the fractional part of the day. Merely one way - and not a good one, since the day is divided by 24 60 60 yet the fraction is binary. Hence a time such as 08:00 or a duration of 8 hours cannot be represented exactly in that notation. Note that time-of-day is reversed before 1899-12-30, at least as implemented in Delphi. so 1.5 is midday on 1-Jan-1900, and 1.25 is 6 Am that morning. This is similar to the Julian date format. You are one day out. One should never refer to Julian dates without explanation (the Julian Calendar is OK). It can rightly be a daycount from noon GMT of 1 Jan 4713 BC Julian, or loosely from 0h local on that day for historians; or it can be YY-DDD or YYDDD, for which the proper term is Ordinal Date. URL:http://www.merlyn.demon.co.uk/moredate.htm#Who. The more cultured readers may have additions for that section. The problem with a leap hour is exactly the same, as there's no place for it to go. The only possible solution for it would be for a leap day, which would also make programmers crinch, as they'd need to write a routine to add an extra day every few thousand years. But then kids really would be going to school a 4 in the morning. No. Leap Seconds are used to keep mid-day at 12 o'clock; Leap Days are used to keep Summer in the right months (well, Easter, really). How to programmers get around the leap second problem? Most of them ignore it! About 90% of the worlds software uses dates and times to record when things happened. Their systems don't aren't accurate anyway, so then something says 30:17:25 is could be anything up to about 5 minutes either way. With atomic clocks now available via the internet, most computers are to within about 2 seconds though. That'll change if the US changes its DST rules, as Congress has in mind G. ====== One must distinguish between various ideas, largely US, for changing date/time. Some concern leap second effects, some leap day effects (for which the most intelligent move at present would be to replace the two rules that Pope Gregory XIII added with a single 128-year rule, first effective in 2048. Of more immediate importance : they may well be changing their Summer Time rules. This should provide the rest of us with a degree of amusement, assuming that they don't manage to update all relevant software and parameters in time. It would be useful to have a concise but exact and authoritative statement of the US DST situation (the web pages of their media are bloated and dumbed-down). -- © John Stockton, Surrey, UK. Turnpike v4.00 MIME. © Web URL:http://www.merlyn.demon.co.uk/ - w. FAQish topics, links, acronyms PAS EXE etc : URL:http://www.merlyn.demon.co.uk/programs/ - see 00index.htm Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc. |
#7
|
|||
|
|||
![]() "Colin Dawson" wrote in message . uk... [snip] Making a leap hour won't solver the problems for programmers either. All it will do is puch the rug under the carpet. As a programmer myself I fully understand this part of the issue and can explain it.... Date and times are stored on a computer by using an Real number (that's a number will an integer part, and a fraction) No such thing in most computer systems. Floating point maybe, but not likely. Fixed point in some suitable base possibly, integer probably (with an appropriate number of bits in either case). The Integer part of the date is the number of days from a given Epoch (Normally, 31-Dec-1899, so day 1 is 1-Jan-1900). The time part is stored in the fractional part of the day. so 1.5 is midday on 1-Jan-1900, and 1.25 is 6 Am that morning. This is similar to the Julian date format. This presents the problem that adding a leap second cannot be done, because there's no place for it to go. Rubbish, the time is held as an integer multiple of the smallest time increment that the system registers (this is essentially what both fixed point and integer representations do). Some additional complication may be introduced if we want to have fields representing seconds, minutes, hours, days, ... Thus inserting a leap second consists of adding the appropriate multiple of the smallest time increment (which will usually be a sub-multiple of a second). The integral and fractional parts corresponding to days and decimal fraction of a day is purely a matter of how the field/s is/are interpreted, and cannot be fundamental as a clock is essentially a counter. RonL -- "Something unknown is doing we know not what." |
#8
|
|||
|
|||
![]()
"Ron Larham" wrote in message
... "Colin Dawson" wrote in message . uk... [snip] Making a leap hour won't solver the problems for programmers either. All it will do is puch the rug under the carpet. As a programmer myself I fully understand this part of the issue and can explain it.... Date and times are stored on a computer by using an Real number (that's a number will an integer part, and a fraction) No such thing in most computer systems. Floating point maybe, but not likely. Fixed point in some suitable base possibly, integer probably (with an appropriate number of bits in either case). Maybe a fixed point is used in some languages, however the fixed point would have be capable of identifying a millisecond in the day i.e. one 86400000'th of a day. or more to the point 1ms is 0.0000000115740740740741. Physically storing that in anything other than a floating point format is impossible. If you read the documentation that comes with programming languages like Delphi, and MS-SQL server, they both state that a datetime is an approximation, as the exact value is not stored. The variable, is not guarenteed to be accurate to 1ms. But in the context of the original post, this is splitting hairs. It doesn't matted what algorithm has been used to store dates in the past, leap seconds are not calculated so there isn't really any way of predicting them other than hard coding the leap second into the algorythm, which would mean alot of code that's not used 99.999% of the time. The Integer part of the date is the number of days from a given Epoch (Normally, 31-Dec-1899, so day 1 is 1-Jan-1900). The time part is stored in the fractional part of the day. so 1.5 is midday on 1-Jan-1900, and 1.25 is 6 Am that morning. This is similar to the Julian date format. This presents the problem that adding a leap second cannot be done, because there's no place for it to go. Rubbish, the time is held as an integer multiple of the smallest time increment that the system registers (this is essentially what both fixed point and integer representations do). Some additional complication may be introduced if we want to have fields representing seconds, minutes, hours, days, ... Oh, so please tell me exactly how the time is stored? And whilst your add it explain why it is that if I truncate the fractional part of the datetime, that gives me a time of exactly midnight (00:00:00) on the given day, setting the fractional part to .5 gives 12:00:00pm on the day. Thus inserting a leap second consists of adding the appropriate multiple of the smallest time increment (which will usually be a sub-multiple of a second). But then how to you know to interpret that correctly? what tells you that there's been a leap second? And how to you stop a range overflow? The integral and fractional parts corresponding to days and decimal fraction of a day is purely a matter of how the field/s is/are interpreted, and cannot be fundamental as a clock is essentially a counter. But how do you know when the counter is supposed to count up to 87840000? Regards Colin Dawson www.cjdawson.com |
#9
|
|||
|
|||
![]()
Colin Dawson wrote
"Ron Larham" wrote in message ... "Colin Dawson" wrote in message . uk... [snip] Making a leap hour won't solver the problems for programmers either. All it will do is puch the rug under the carpet. As a programmer myself I fully understand this part of the issue and can explain it.... Date and times are stored on a computer by using an Real number (that's a number will an integer part, and a fraction) No such thing in most computer systems. Floating point maybe, but not likely. Fixed point in some suitable base possibly, integer probably (with an appropriate number of bits in either case). Maybe a fixed point is used in some languages, however the fixed point would have be capable of identifying a millisecond in the day i.e. one 86400000'th of a day. or more to the point 1ms is 0.0000000115740740740741. Physically storing that in anything other than a floating point format is impossible. If you read the documentation that comes with programming languages like Delphi, and MS-SQL server, they both state that a datetime is an approximation, as the exact value is not stored. The variable, is not guarenteed to be accurate to 1ms. But in the context of the original post, this is splitting hairs. It doesn't matted what algorithm has been used to store dates in the past, leap seconds are not calculated so there isn't really any way of predicting them other than hard coding the leap second into the algorythm, which would mean alot of code that's not used 99.999% of the time. The Integer part of the date is the number of days from a given Epoch (Normally, 31-Dec-1899, so day 1 is 1-Jan-1900). The time part is stored in the fractional part of the day. so 1.5 is midday on 1-Jan-1900, and 1.25 is 6 Am that morning. This is similar to the Julian date format. This presents the problem that adding a leap second cannot be done, because there's no place for it to go. Rubbish, the time is held as an integer multiple of the smallest time increment that the system registers (this is essentially what both fixed point and integer representations do). Some additional complication may be introduced if we want to have fields representing seconds, minutes, hours, days, ... Oh, so please tell me exactly how the time is stored? And whilst your add it explain why it is that if I truncate the fractional part of the datetime, that gives me a time of exactly midnight (00:00:00) on the given day, setting the fractional part to .5 gives 12:00:00pm on the day. Thus inserting a leap second consists of adding the appropriate multiple of the smallest time increment (which will usually be a sub-multiple of a second). But then how to you know to interpret that correctly? what tells you that there's been a leap second? And how to you stop a range overflow? The integral and fractional parts corresponding to days and decimal fraction of a day is purely a matter of how the field/s is/are interpreted, and cannot be fundamental as a clock is essentially a counter. But how do you know when the counter is supposed to count up to 87840000? Regards Colin Dawson www.cjdawson.com Steady gentlemen! This already illustrates why programmers should not be arbiters of reference systems. The fact is that re-writing bad software costs far more than astronomers having to perform a slightly more complex calculation. As long as a definition of UTC recognises the difference between astronomical time and civil time (whatever their particular 'labels') and deltaT (the difference) continues to be maintained, rewriting of astronomical software is a comparatively trivial task. Or am I wrong in thinking that UTC is a civil reference? Are we going to have UTC1and UTC2? Whatever happened to ET? (no, not the bloody alien). And another thing. Just how many planets are there? and come to that, if we know their orbits, how can they be 'wanderers' at all? Finally, I would just add that by even mentioning 'windoze platform', the concept of accuracy dives out of a top floor window. What does the IAU have to say about all this !!! Isn't astronomy exciting! Denis -- DT I freely admit to writing bad software, in order to satisfy the requirements of others. change: n o s p a m -to- v a l l e ys |
#10
|
|||
|
|||
![]() |
Thread Tools | |
Display Modes | |
|
|