Calculate the amount of nanoseconds passed in the current day of a certain date string.
Solution Stats
Problem Comments
3 Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers16
Suggested Problems
-
Is my wife right? Now with even more wrong husband
1340 Solvers
-
Project Euler: Problem 7, Nth prime
1751 Solvers
-
Back to basics 4 - Search Path
380 Solvers
-
Are all the three given point in the same line?
600 Solvers
-
Try 1.5.4: Celsius to Fahrenheit
866 Solvers
More from this Author14
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
The test suite has been expanded and fixed.
The date string identifies the date and time to the nearest second, so we know that the last 9 digits of the correct number of nanoseconds have to be zeros. Where are these odd, fractional numbers coming from?
We must use the function datenum to obtain the necessary data. However it is still a phony data obtained by the roundup error of dividing the number of hours by 24. For instance, 20h10 becomes 20/24 + 10/60/24 (but this decimal data has nothing to do with the passed nanoseconds of a day; it's just the best floating point representation of this fraction). The correct would be to use a dot after the seconds like '20:10:00.123' for quantities smaller than 1 second. And no dot or zeros would mean 20*3600 + 10*60 seconds.
PS: If we use datevec(now), then we may see how nanoseconds are truly displayed,, and what data is currently missing from the test suite.