code: public <T extends Appendable> T getApproximately(T a) {
  
  		try {
  			MutableInt parts = new MutableInt(0);
  			long d = delta;
  			long mod = d % YEAR;
  
  			if (!append(d, mod, YEAR, 'y', a, parts)) {
  				d %= YEAR;
  				mod = d % MONTH;
  				if (!append(d, mod, MONTH, 'n', a, parts) && parts.intValue() < 2) {
  					d %= MONTH;
  					mod = d % DAY;
  					if (!append(d, mod, DAY, 'd', a, parts) && parts.intValue() < 2) {
  						d %= DAY;
  						mod = d % HOUR;
  						if (!append(d, mod, HOUR, 'h', a, parts) && parts.intValue() < 2) {
  							d %= HOUR;
  							mod = d % MINUTE;
  							if (!append(d, mod, MINUTE, 'm', a, parts) && parts.intValue() < 2) {
  								d %= MINUTE;
  								mod = d % SECOND;
  								if (!append(d, mod, SECOND, 's', a, parts) && parts.intValue() < 2) {
  									d %= SECOND;
  									if (d > 0) {
  										a.append(Integer.toString((int) d));
  										a.append('m');
  										a.append('s');
  									}
  								}
  							}
  						}
  					}
  				}
  			}
  		} catch (IOException ex) {
  			// What were they thinking...
  			LoggerFactory.getLogger(HumanTime.class).warn(null, ex);
  		}
  
  		return a;
  	}
docs: Appends an approximate, human-formatted representation of the time delta to the given {@link Appendable} object.
  
  @param <T> the return type
  @param a the Appendable object, may not be <code>null</code>
  @return the given Appendable object, never <code>null</code>