public DateRange getDateRange(int daTag, int tmTag, DateRange defVal) { DateRange da = getDateRange(daTag, VR.DA); if (da == null) return defVal; DateRange tm = getDateRange(tmTag, VR.TM); if (tm == null) return da; return new DateRange( DateUtils.toDateTime(da.getStart(), tm.getStart()), DateUtils .toDateTime(da.getEnd(), tm.getEnd())); }
@Override public DateRange toDateRange(byte[] val) { String s = StringUtils.trim(VR.bytes2str1(val, null)); int l; if (s == null || (l = s.length()) == 0 || s.equals("-")) return null; int hypen = s.indexOf('-'); Date start = hypen == 0 ? null : DateUtils.parseDA(hypen == -1 ? s : s.substring(0, hypen), false); Date end = hypen + 1 == l ? null : DateUtils.parseDA(s .substring(hypen + 1), true); return new DateRange(start, end); } }
@Override public byte[] toBytes(DateRange dr) { if (dr == null) return null; StringBuffer sb = new StringBuffer(36); if (dr.getStart() != null) sb.append(DateUtils.formatDT(dr.getStart())); sb.append("-"); if (dr.getEnd() != null) sb.append(DateUtils.formatDT(dr.getEnd())); return VR.str2bytes(sb.toString(), null); }
@Override public DateRange toDateRange(byte[] val) { String s = StringUtils.trim(VR.bytes2str1(val, null)); int l; if (s == null || (l = s.length()) == 0 || s.equals("-")) return null; int hypen = s.indexOf('-'); Date start = hypen == 0 ? null : DateUtils.parseTM(hypen == -1 ? s : s.substring(0, hypen), false); Date end = hypen + 1 == l ? null : DateUtils.parseTM(s .substring(hypen + 1), true); return new DateRange(start, end); } }
@Override public byte[] toBytes(DateRange dr) { if (dr == null) return null; StringBuffer sb = new StringBuffer(9); if (dr.getStart() != null) sb.append(DateUtils.formatDA(dr.getStart())); sb.append("-"); if (dr.getEnd() != null) sb.append(DateUtils.formatDA(dr.getEnd())); return VR.str2bytes(sb.toString(), null); }
@Override public DateRange toDateRange(byte[] val) { String s = StringUtils.trim(VR.bytes2str1(val, null)); int l; if (s == null || (l = s.length()) == 0 || s.equals("-")) return null; int hypen = s.indexOf('-'); Date start = hypen == 0 ? null : DateUtils.parseDT(hypen == -1 ? s : s.substring(0, hypen), false); Date end = hypen + 1 == l ? null : DateUtils.parseDT(s .substring(hypen + 1), true); return new DateRange(start, end); } }
@Override public byte[] toBytes(DateRange dr) { if (dr == null) return null; StringBuffer sb = new StringBuffer(20); if (dr.getStart() != null) sb.append(DateUtils.formatTM(dr.getStart())); sb.append("-"); if (dr.getEnd() != null) sb.append(DateUtils.formatTM(dr.getEnd())); return VR.str2bytes(sb.toString(), null); }