import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.SimpleTimeZone; public class SatelliteDate { private GregorianCalendar calendar = new GregorianCalendar(); public SatelliteDate() { calendar.setTime(new Date()); setTimes(); } public SatelliteDate(int month, int day, int year) { calendar.set(Calendar.DAY_OF_MONTH, day); calendar.set(Calendar.YEAR, year); // month is 0..11 calendar.set(Calendar.MONTH, month-1); setTimes(); } private void setTimes() { // eastern time is default from OS. nasa's images are UTC calendar.setTimeZone(new SimpleTimeZone(0, "UTC")); // subtract 24 hours so ending image is current time calendar.add(Calendar.HOUR_OF_DAY, -24); } public void addHours(int hourdelta) { calendar.add(Calendar.HOUR_OF_DAY, hourdelta); } public String toString() { int hour = calendar.get(Calendar.HOUR_OF_DAY); String hourString; if (hour < 10) hourString = "0" + hour; else hourString = "" + hour; String satDate = "" + calendar.get(Calendar.YEAR) + calendar.get(Calendar.DAY_OF_YEAR) + hourString; // get rid of first two digits of year satDate = satDate.substring(2); return satDate; } }