private CalendarDate parseFilenameForDate(String filename) { // filename MOD13Q1.A2000065.h11v04.005.2008238031620.hdf String[] tokes = filename.split("\\."); if (tokes.length < 2) return null; if (tokes[1].length() < 8) return null; String want = tokes[1]; String yearS = want.substring(1,5); String jdayS = want.substring(5,8); try { int year = Integer.parseInt(yearS); int jday = Integer.parseInt(jdayS); return CalendarDate.withDoy(null, year, jday, 0,0,0); } catch (Exception e) { return null; } }
private CalendarDate parseFilenameForDate(String filename) { // filename MOD13Q1.A2000065.h11v04.005.2008238031620.hdf String[] tokes = filename.split("\\."); if (tokes.length < 2) return null; if (tokes[1].length() < 8) return null; String want = tokes[1]; String yearS = want.substring(1,5); String jdayS = want.substring(5,8); try { int year = Integer.parseInt(yearS); int jday = Integer.parseInt(jdayS); return CalendarDate.withDoy(null, year, jday, 0,0,0); } catch (Exception e) { return null; } }
private CalendarDate parseFilenameForDate(String filename) { // filename MOD13Q1.A2000065.h11v04.005.2008238031620.hdf String[] tokes = filename.split("\\."); if (tokes.length < 2) return null; if (tokes[1].length() < 8) return null; String want = tokes[1]; String yearS = want.substring(1,5); String jdayS = want.substring(5,8); try { int year = Integer.parseInt(yearS); int jday = Integer.parseInt(jdayS); return CalendarDate.withDoy(null, year, jday, 0,0,0); } catch (Exception e) { return null; } }
public CalendarDate makeCalendarDate() { if (!hasField(BufrCdmIndexProto.FldType.year)) return null; int year = getFieldValue(BufrCdmIndexProto.FldType.year); int hour = !hasField(BufrCdmIndexProto.FldType.hour) ? 0 : getFieldValue(BufrCdmIndexProto.FldType.hour); int minute = !hasField(BufrCdmIndexProto.FldType.minute) ? 0 : getFieldValue(BufrCdmIndexProto.FldType.minute); int sec = !hasField(BufrCdmIndexProto.FldType.sec) ? 0 : getFieldValue(BufrCdmIndexProto.FldType.sec); if (sec < 0) { sec = 0; } else if (sec > 0){ Field fld = map.get(BufrCdmIndexProto.FldType.sec); if (fld.scale != 0) { sec = (int) (sec * fld.scale); // throw away msecs } if (sec < 0 || sec > 59) sec = 0; } if (hasField(BufrCdmIndexProto.FldType.month) && hasField(BufrCdmIndexProto.FldType.day)) { int month = getFieldValue(BufrCdmIndexProto.FldType.month); int day = getFieldValue(BufrCdmIndexProto.FldType.day); return CalendarDate.of(null, year, month, day, hour, minute, sec); } else if (hasField(BufrCdmIndexProto.FldType.doy)) { int doy = getFieldValue(BufrCdmIndexProto.FldType.doy); return CalendarDate.withDoy(null, year, doy, hour, minute, sec); } return null; }