Greg_Deckler
Community Champion
4 years agoJulian
Convert dates from Gregorian calendar dates to Julian Days and back again. Based upon Jean Meeus' Astrological Algorithms.
Julian Day =
// For converting from Gregorian dates
// Adapted from Jean Meeus' Astrological Algorithms
VAR __GregorianDate = MAX('Dates'[Date])
VAR __GregorianYear = YEAR(__GregorianDate)
VAR __GregorianMonth = MONTH(__GregorianDate)
VAR __GregorianDay = DAY(__GregorianDate)
VAR __Y = IF(__GregorianMonth > 2, __GregorianYear, __GregorianYear - 1)
VAR __M = IF(__GregorianMonth > 2, __GregorianMonth, __GregorianMonth + 12)
VAR __D = __GregorianDay
VAR __A = INT(__Y/100)
VAR __B = 2 - __A + INT(__A/4)
RETURN
INT(365.25 * (__Y + 4716)) + INT( 30.6001 * (__M + 1)) + __D + __B -1524.5
Gregorian Date =
// For converting from Julian Day
// Adapted from Jean Meeus' Astrologial Algorithms
VAR __JulianDay = [Julian Day]
VAR __Z = INT(__JulianDay + .5)
VAR __F = __JulianDay + .5 - __Z
VAR __A =
IF(
__Z < 2299161,
__Z,
VAR __alpha = INT( (__Z - 1867216.25) / 36524.25)
RETURN
__Z + 1 + __alpha - INT(__alpha/4)
)
VAR __B = __A + 1524
VAR __C = INT( (__B - 122.1)/365.25)
VAR __D = INT(365.25 * __C)
VAR __E = INT( (__B - __D)/30.6001)
VAR __Day = __B - __D - INT(30.6001 * __E)
VAR __Month = IF(__E < 14, __E - 1, __E - 13)
VAR __Year = IF(__Month > 2, __C - 4716, __C - 4715)
RETURN
DATE(__Year,__Month,__Day) + __F
eyJrIjoiZDBlMjg0NmItYjIwYy00NjU2LTkyYzEtOGE3ZTIzZWMyMDEyIiwidCI6IjRhMDQyNzQzLTM3M2EtNDNkMi04MjdiLTAwM2Y0YzdiYTFlNSIsImMiOjN9
No RepliesBe the first to reply