private int getPosition(Day d) {
		Integer result = map1.get(d);
		if (result != null) {
			return result.intValue();
		}
		while (d.compareTo(biggest) > 0) {
			int n = getPosition(biggest);
			biggest = biggest.next();
			if (timeLine.isClosed(biggest) == false) {
				n++;
			}
			putDay(biggest, n);
		}
		while (d.compareTo(smallest) < 0) {
			int n = getPosition(smallest);
			smallest = smallest.previous();
			if (timeLine.isClosed(smallest) == false) {
				n--;
			}
			putDay(smallest, n);
		}
		result = map1.get(d);
		if (result != null) {
			return result.intValue();
		}
		throw new UnsupportedOperationException();
	}