/* Generated by Together */ package XMLReport.common; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; import java.text.ParseException; public class JulianDate { // number of milliseconds in a day static final long mSecDay = 1000 * 60 * 60 * 24; // Days after 1/1/1970 to 1/1/0001 static final long dayZero = -719164; static SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); /** Convert a julian date number to a date string of the format "MM/dd/yyyy" */ public static String formatJulDate(int julDate) { SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); //int iJulDate = (new Double(julDate)).intValue(); Date date = new Date((julDate + dayZero) * mSecDay); return dateFormat.format(date); } //formatJulDate /** Convert a date string of the format "MM/dd/yyyy" to a julian date number */ public static long createJulDate(String dateString) { long julDate = 0; try { Date date = dateFormat.parse(dateString); julDate = 1 - dayZero + date.getTime() / mSecDay; } catch(ParseException e) { System.out.println("Problem parsing date: " + dateString); e.printStackTrace(); } return julDate; } public Object getDate(double year, double month, double day, String format) { // Date(int, int, int) has been deprecated, so use Calendar to // set the year, month, and day. Calendar c = Calendar.getInstance(); // Convert each argument to int. c.set((int)year, (int)month, (int)day); // create formatter SimpleDateFormat dateFormat = new SimpleDateFormat(format); // perform formatting return dateFormat.format(c.getTime()); } public static void main(String[] args) { String retVal; try { SimpleDateFormat julianDate1 = new SimpleDateFormat("yyyyMMdd"); Date date = julianDate1.parse("19700101"); Calendar cal1 = Calendar.getInstance(); cal1.setTime(date); retVal = julianDate1.format(date); System.out.println("Date : " + retVal); System.out.println("1/1/1970: " + (date.getTime() / mSecDay + 719165)); System.out.println("Today: " + (new Date().getTime() / mSecDay + 719165)); Date date2 = julianDate1.parse("00010101"); System.out.println("01/01/0001 = " + date2.getTime() / mSecDay); Date date3 = new Date((730091 - 719164) * mSecDay); System.out.println("Seconds per day = " + mSecDay); System.out.println("730091 = " + julianDate1.format(date3)); //System.out.println("formatJulDate(730091) = " + new JulianDate().formatJulDate(730091)); } catch (Exception e) { System.out.println("Error : " + e); } } //main }