docs: public static CharSequence getRelativeTimeSpanString(Context ctx, ReadableInstant time, boolean withPreposition) {
          String result;
          LocalDate now = LocalDate.now();
          LocalDate timeDate = new LocalDate(time);
  
          int prepositionId;
          if (Days.daysBetween(now, timeDate).getDays() == 0) {
              // Same day
              int flags = FORMAT_SHOW_TIME;
              result = formatDateRange(ctx, time, time, flags);
              prepositionId = R.string.joda_time_android_preposition_for_time;
          }
          else if (Years.yearsBetween(now, timeDate).getYears() != 0) {
              // Different years
              int flags = FORMAT_SHOW_DATE | FORMAT_SHOW_YEAR | FORMAT_NUMERIC_DATE;
              result = formatDateRange(ctx, time, time, flags);
  
              // This is a date (like "10/31/2008" so use the date preposition)
              prepositionId = R.string.joda_time_android_preposition_for_date;
          }
          else {
              // Default
              int flags = FORMAT_SHOW_DATE | FORMAT_ABBREV_MONTH;
              result = formatDateRange(ctx, time, time, flags);
              prepositionId = R.string.joda_time_android_preposition_for_date;
          }
  
          if (withPreposition) {
              result = ctx.getString(prepositionId, result);
          }
  
          return result;
      }