Ahojte,

On 6/18/07, Ondřej Fafejta <[EMAIL PROTECTED]> wrote:
Která z možností je správně?

a) validTo.set(Calendar.MONTH, validTo.get(Calendar.MONTH) + 1);
b) validTo.add(Calendar.MONTH,1);

Nebudu vás napínat.
Výsledky jsou následující:
a) 2.3.2007
b) 28.2.2007  - ANO B je správně!

Kdo by to čekal,
že logicky stejným postupem získám dvě různá řešení :-).

Ten kdo cte JavaDoc? :-))

add(f, delta) adds delta  to field f. This is equivalent to calling
set(f, get(f) + delta) with two adjustments:

   Add rule 1. The value of field f after the call minus the value of
field f before the call is delta, modulo any overflow that has
occurred in field f. Overflow occurs when a field value exceeds its
range and, as a result, the next larger field is incremented or
decremented and the field value is adjusted back into its range.

   Add rule 2. If a smaller field is expected to be invariant, but
it is impossible for it to be equal to its prior value because of
changes in its minimum or maximum after field f is changed, then its
value is adjusted to be as close as possible to its expected value. A
smaller field represents a smaller unit of time. HOUR is a smaller
field than DAY_OF_MONTH. No adjustment is made to smaller fields that
are not expected to be invariant. The calendar system determines what
fields are expected to be invariant.


Fafi

-- pepa cacek

Odpovedet emailem