# Template talk:Dectime

(Redirected from Template talk:MJD2HMS)
This the talk page for Template:Dectime and Template:MJD2HMS

## Documentation

{{dectime}} converts times given as hh mm ss (hours, minutes, seconds) to decimal fractions of a day.

### Examples

The following examples are usual times, but 00:00:00 up to 00:00:08 belong to the special cases shown below:

{{`dectime|00|00|00`}} = 0
{{`dectime|00|00|01`}} = 0.0000115740740741
{{`dectime|00|00|08`}} = 0.0000925925925926
{{`dectime|00|00|09`}} = 0.00010416666666667
{{`dectime|00|22|30`}} = 0.015625
{{`dectime|00|45|00`}} = 0.03125
{{`dectime|01|30|00`}} = 0.0625
{{`dectime|03|00|00`}} = 0.125
{{`dectime|06|00|00`}} = 0.25
{{`dectime|12|00|00`}} = 0.5
{{`dectime|18|00|00`}} = 0.75
{{`dectime|21|00|00`}} = 0.875
{{`dectime|23|59|59`}} = 0.99998842592593
{{`dectime|23|59|60`}} = 1
{{`dectime|24|00|00`}} = 1
{{`dectime|24.00000`}} = 1
{{dectime|08|36|24}} = 0.35861111111111
{{dectime}} = 0.35861111111111
Default time hh:00:00 if hours hh specified, otherwise the current time is extracted from `{{CURRENTTIMESTAMP}}` gives 20191022083624 [1] using {{Timestamp2MJD}} to avoid critical races near hh:mm:59. The second to last example shown above might have this or another problem, it evaluates several "current" timestamps instead of one.
For {{dectime}} results between 0 and 1 excluding 1 {{MJD2HMS}} can be used as inverse function.
{{`dectime|00|00|00`}} = 0, {{`MJD2HMS|0|||=`}} gives 000000
{{`dectime|00|00|01`}} = 0.0000115740740741
{{`MJD2HMS|0.0000115740740741`}} = 00:00:01
{{`dectime|23|59|59`}} = 0.99998842592593
{{`MJD2HMS|0.999988425926`}} = 23:59:59
{{`dectime|24|00|00`}} = 1, {{`MJD2HMS|1|||=`}} gives 000000

### Special cases

The special cases are based on  86400 = 24*60*60
1. Negative times are not supported:
{{`dectime|00|-01|+59`}} = NegativeTimesNotSupported
2. Null is a (trivial) special case, accuracy is milliseconds (rounded):
{{`dectime|00|-01|+60`}} = 0
{{`dectime|0|0|0.0004`}} = 0
{{`dectime|0|0|0.0005`}} = 0.0000000115740740741
3. Times before 00:00:00.009 (= 9 milliseconds) handled separately:
{{`dectime|0|0|0.0010`}} = 0.0000000115740740741
{{`dectime|0|0|0.0080`}} = 0.0000000925925925926
{{`dectime|0|0|0.0084`}} = 0.0000000925925925926
4. Times before 00:00:00.087 (= 87 milliseconds), 12 significant digits:
{{`dectime|0|0|0.0085`}} = 0.000000104166666667
{{`dectime|0|0|0.0860`}} = 0.000000995370370370
{{`dectime|0|0|0.0864`}} = 0.000000995370370370
5. Times before 00:00:00.864, all results are rounded:
{{`dectime|0|0|0.0865`}} = 0.00000100694444444
{{`dectime|0|0|0.8630`}} = 0.00000998842592593
{{`dectime|0|0|0.8634`}} = 0.00000998842592593
6. Times before 00:00:08.640 (= 8640 milliseconds):
{{`dectime|0|0|0.8635`}} = 0.0000100000000000
{{`dectime|0|0|8.6390`}} = 0.0000999884259259
{{`dectime|0|0|8.6394`}} = 0.0000999884259259
7. Normal handling starts at 00:00:08.640 (= 8640 milliseconds):
{{`dectime|0|0|8.6395`}} = 0.0001
{{`dectime|0|0|8.6400`}} = 0.0001
{{`dectime|0|0|86.399`}} = 0.00099998842592593
{{`dectime|0|0|86.400`}} = 0.001
{{`dectime|00|01|26.4`}} = 0.001
8. Huge timestamps are shown in exponential format:
{{`dectime|23999999999987`}} = 999999999999.46
{{`dectime|23999999999988`}} = 999999999999.5
{{`dectime|24000000000000`}} = 1000000000000
{{`dectime|36000000000000`}} = 1500000000000

Note that trailing zeros are not truncated for times between 0 and 8640 milliseconds. Adding 0 or a similar operation would result in exponential format for input values below 8640 milliseconds.

The special handling is important for {{MJD}}={{YMD2MJD}}+{{dectime}}, some parser functions don't support input in exponential format.

Optional substitution works if all three parameters and subst=subst: are specified, or for the current time {{subst:dectime|subst=subst:}}.