LocalDate birthdate = new LocalDate(1996, 2, 29); LocalDate now = new LocalDate(2014, 2, 28); // test, in real world without args Years age = Years.yearsBetween(birthdate, now); System.out.println(age.getYears()); // 18
prepositionId = R.string.joda_time_android_preposition_for_time; else if (Years.yearsBetween(now, timeDate).getYears() != 0) {
@Test public void testDateDiffDate() { DateTime baseDateTime = new DateTime(1960, 5, 3, 0, 0, 0, 0, DateTimeZone.UTC); String baseDateTimeLiteral = "DATE '1960-05-03'"; assertFunction("date_diff('day', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) daysBetween(baseDateTime, DATE).getDays()); assertFunction("date_diff('week', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) weeksBetween(baseDateTime, DATE).getWeeks()); assertFunction("date_diff('month', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) monthsBetween(baseDateTime, DATE).getMonths()); assertFunction("date_diff('quarter', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) monthsBetween(baseDateTime, DATE).getMonths() / 3); assertFunction("date_diff('year', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) yearsBetween(baseDateTime, DATE).getYears()); }
assertFunction("date_diff('month', " + baseDateTimeLiteral + ", " + TIMESTAMP_LITERAL + ")", BIGINT, (long) monthsBetween(baseDateTime, TIMESTAMP).getMonths()); assertFunction("date_diff('quarter', " + baseDateTimeLiteral + ", " + TIMESTAMP_LITERAL + ")", BIGINT, (long) monthsBetween(baseDateTime, TIMESTAMP).getMonths() / 3); assertFunction("date_diff('year', " + baseDateTimeLiteral + ", " + TIMESTAMP_LITERAL + ")", BIGINT, (long) yearsBetween(baseDateTime, TIMESTAMP).getYears()); assertFunction("date_diff('year', " + weirdBaseDateTimeLiteral + ", " + WEIRD_TIMESTAMP_LITERAL + ")", BIGINT, (long) yearsBetween(weirdBaseDateTime, WEIRD_TIMESTAMP).getYears());
boolean isInRange(Years age, int start, int end) { int intAge = age.getYears(); if (intAge >= start && intAge <= end) { return true; } else { return false; } }
@Override public Integer toNonNullValue(Years value) { return value.getYears(); } }
@Override public String toNonNullValue(Years value) { return YEAR_FORMATTER.print(value.getYears()); } }
@Override public String toNonNullValue(Years value) { return YEAR_FORMATTER.print(value.getYears()); } }
public static void main(String[] args) { LocalDate birthdate = new LocalDate (1958, 1, 20); LocalDate now = new LocalDate(); Years age = Years.yearsBetween(birthdate, now); System.out.println(age.getYears()); }
@Override public long getDiff(Interval interval) { return Years.yearsIn(interval).getYears(); } };
@Override public int numIn(ReadableInterval interval) { return Years.yearsIn(interval).getYears(); }
/** * get years amount between two dates * * @param fromDate * @param toDate * @return */ public static int yearsBetween(Date fromDate, Date toDate) { DateTime from = new DateTime(fromDate.getTime()); DateTime to = new DateTime(toDate.getTime()); return Years.yearsBetween(from, to).getYears(); }
private boolean isValidDateForTask(Date startDate, Date verifiedDate) { if (anchorDate == null) { anchorDate = startDate; } else { anchorDate = anchorDate.before(startDate) ? anchorDate : startDate; } long distance = Years.yearsBetween(new LocalDate(anchorDate), new LocalDate(verifiedDate)).getYears(); return distance <= MAX_RANGE && !verifiedDate.after(MAX_DATE); }
@Override public void generateAge() { if (dateOfBirth != null) { age = Years.yearsBetween(dateOfBirth, DateTime.now()).getYears(); } else { if (age != null) { return; } age = baseProducer.randomBetween(MIN_AGE, MAX_AGE); } }
@Override public boolean evaluate(final Map<String, String> context) { String dateOfBirth = getDateOfBirth(context); if (dateOfBirth == null) { return false; } else { DateTime dateTime = DateTime.parse(dateOfBirth, DateTimeFormat.forPattern("dd.MM.yyyy")); return Integer.parseInt(getLeft().getValue(context)) <= Years.yearsBetween(new LocalDate(dateTime), new LocalDate()).getYears(); } } }
@Override public IntervalWindow assignWindow(Instant timestamp) { DateTime datetime = new DateTime(timestamp, timeZone); DateTime offsetStart = startDate.withMonthOfYear(monthOfYear).withDayOfMonth(dayOfMonth); int yearOffset = Years.yearsBetween(offsetStart, datetime).getYears() / number * number; DateTime begin = offsetStart.plusYears(yearOffset); DateTime end = begin.plusYears(number); return new IntervalWindow(begin.toInstant(), end.toInstant()); }
@Override public Long exec(Tuple input) throws IOException { if (input == null || input.size() < 2 || input.get(0) == null || input.get(1) == null) { return null; } DateTime startDate = (DateTime) input.get(0); DateTime endDate = (DateTime) input.get(1); // Larger value first Years y = Years.yearsBetween(endDate, startDate); // joda limitation, only integer range, at the risk of overflow, need to be improved return (long) y.getYears(); }
@Test public void testDateDiffDate() { DateTime baseDateTime = new DateTime(1960, 5, 3, 0, 0, 0, 0, DateTimeZone.UTC); String baseDateTimeLiteral = "DATE '1960-05-03'"; assertFunction("date_diff('day', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) daysBetween(baseDateTime, DATE).getDays()); assertFunction("date_diff('week', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) weeksBetween(baseDateTime, DATE).getWeeks()); assertFunction("date_diff('month', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) monthsBetween(baseDateTime, DATE).getMonths()); assertFunction("date_diff('quarter', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) monthsBetween(baseDateTime, DATE).getMonths() / 3); assertFunction("date_diff('year', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, (long) yearsBetween(baseDateTime, DATE).getYears()); }
@Test public void testDateDiffDate() { DateTime baseDateTime = new DateTime(1960, 5, 3, 0, 0, 0, 0, DateTimeZone.UTC); String baseDateTimeLiteral = "DATE '1960-05-03'"; assertFunction("date_diff('day', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, daysBetween(baseDateTime, DATE).getDays()); assertFunction("date_diff('week', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, weeksBetween(baseDateTime, DATE).getWeeks()); assertFunction("date_diff('month', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, monthsBetween(baseDateTime, DATE).getMonths()); assertFunction("date_diff('quarter', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, monthsBetween(baseDateTime, DATE).getMonths() / 3); assertFunction("date_diff('year', " + baseDateTimeLiteral + ", " + DATE_LITERAL + ")", BIGINT, yearsBetween(baseDateTime, DATE).getYears()); }