Encode date and time fields into 2-part Julian Date (or in the case of UTC a quasi-JD form that includes special provision for leap seconds).

Namespace: ASCOM.Astrometry.SOFA
Assembly: ASCOM.Astrometry (in ASCOM.Astrometry.dll) Version: (


public int Dtf2d(
	string scale,
	int iy,
	int im,
	int id,
	int ihr,
	int imn,
	double sec,
	ref double d1,
	ref double d2
Visual Basic
Public Function Dtf2d ( _
	scale As String, _
	iy As Integer, _
	im As Integer, _
	id As Integer, _
	ihr As Integer, _
	imn As Integer, _
	sec As Double, _
	ByRef d1 As Double, _
	ByRef d2 As Double _
) As Integer
Visual C++
virtual int Dtf2d(
	String^ scale, 
	int iy, 
	int im, 
	int id, 
	int ihr, 
	int imn, 
	double sec, 
	double% d1, 
	double% d2
) sealed


Type: System..::..String
Time scale ID (Note 1)
Type: System..::..Int32
Year in Gregorian calendar (Note 2)
Type: System..::..Int32
Month in Gregorian calendar (Note 2)
Type: System..::..Int32
Day in Gregorian calendar (Note 2)
Type: System..::..Int32
Type: System..::..Int32
Type: System..::..Double
Type: System..::..Double%
2-part Julian Date (Notes 3, 4)
Type: System..::..Double%
2-part Julian Date (Notes 3, 4)

Return Value

Status: +3 = both of next two, +2 = time is after end of day (Note 5), +1 = dubious year (Note 6), 0 = OK, -1 = bad year, -2 = bad month, -3 = bad day, -4 = bad hour, -5 = bad minute, -6 = bad second (<0)


  1. Scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4).
  2. For calendar conventions and limitations, see iauCal2jd.
  3. The sum of the results, d1+d2, is Julian Date, where normally d1 is the Julian Day Number and d2 is the fraction of a day. In the case of UTC, where the use of JD is problematical, special conventions apply: see the next note.
  4. JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The SOFA internal convention is that the quasi-JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era there were smaller jumps (in either direction) each time the linear UTC(TAI) expression was changed, and these "mini-leaps" are also included in the SOFA convention.
  5. The warning status "time is after end of day" usually means that the sec argument is greater than 60.0. However, in a day ending in a leap second the limit changes to 61.0 (or 59.0 in the case of a negative leap second).
  6. The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
  7. Only in the case of continuous and regular time scales (TAI, TT, TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly speaking. In the other cases (UT1 and UTC) the result must be used with circumspection; in particular the difference between two such results cannot be interpreted as a precise time interval.

See Also