Преобразовать обычную дату в юлианскую дату и наоборот в Java
Я написал простой код, который преобразует обычную дату в юлианскую дату.
Вот код для тех, кому нужно такое же преобразование:
public int convertToJulian(String unformattedDate)
{
/*Unformatted Date: ddmmyyyy*/
int resultJulian = 0;
if(unformattedDate.length() > 0)
{
/*Days of month*/
int[] monthValues = {31,28,31,30,31,30,31,31,30,31,30,31};
String dayS, monthS, yearS;
dayS = unformattedDate.substring(0,2);
monthS = unformattedDate.substring(3, 5);
yearS = unformattedDate.substring(6, 10);
/*Convert to Integer*/
int day = Integer.valueOf(dayS);
int month = Integer.valueOf(monthS);
int year = Integer.valueOf(yearS);
//Leap year check
if(year % 4 == 0)
{
monthValues[1] = 29;
}
//Start building Julian date
String julianDate = "1";
//last two digit of year: 2012 ==> 12
julianDate += yearS.substring(2,4);
int julianDays = 0;
for (int i=0; i < month-1; i++)
{
julianDays += monthValues[i];
}
julianDays += day;
if(String.valueOf(julianDays).length() < 2)
{
julianDate += "00";
}
if(String.valueOf(julianDays).length() < 3)
{
julianDate += "0";
}
julianDate += String.valueOf(julianDays);
resultJulian = Integer.valueOf(julianDate);
}
return resultJulian;
}
Этот код преобразует 01.01.2013 в 113001
Я хочу преобразовать юлианскую дату в обычную дату без указания времени. Например: Юлианская дата 113029 ==> Обычная дата 29.01.2013
Пожалуйста, дайте мне ваши идеи о том, как это сделать.
Благодарю.