Thursday, March 7, 2019

C# .NET - julian date




1. for conversion from US/Uk format to Julian Format

 
public static long ConvertToJulian( DateTime dt)
    {
      int m = dt.Month;
      int d = dt.Day;
      int y = dt.Year;
 
        if(m < 3)
        {
            m = m + 12;
             y=y-1 ;
        }
        long jd = d + (153 * m - 457) / 5 + 365 * y + (y / 4) - (y / 100) + (y / 400) + 1721119;
        return jd;
    }

2. for conversion from Julian format to  US/Uk Format 

public static DateTime ConvertFromJulian(int m_JulianDate)
    {
 
      long L = m_JulianDate + 68569;
      long N = (long) ((4*L)/146097) ;
      L = L - ((long)((146097 * N + 3)/4) );
      long I = (long) ((4000 *(L + 1)/1461001)) ;
      L = L - (long)((1461*I)/4) + 31;
      long J = (long)((80*L)/2447);
      int Day = (int)(L - (long)((2447*J)/80));
      L=(long)(J/11) ;
      int Month = (int)(J + 2 - 12*L);
      int Year = (int)(100*(N-49) + I + L) ;
 
      DateTime dt = new DateTime(Year,Month,Day);
      return dt;
    }


this will solve you problem.......and hope you know how to pass parameter.....

Reference : http://www.nullskull.com/q/10284522/julian-dateurgent.aspx

No comments:

Post a Comment