Android Date Set setMonths(Date date, int amount)

Here you can find the source of setMonths(Date date, int amount)

Description

Sets the months field to a date returning a new object.

License

Apache License

Parameter

Parameter Description
date the date, not null
amount the amount to set

Exception

Parameter Description
IllegalArgumentException if the date is null

Return

a new Date set with the specified value

Declaration

public static Date setMonths(Date date, int amount) 

Method Source Code

//package com.java2s;
/*/*from w w w .j  a va2 s  .  co m*/
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.util.Calendar;
import java.util.Date;

public class Main {
    /**
     * Sets the months field to a date returning a new object.
     * The original {@code Date} is unchanged.
     *
     * @param date  the date, not null
     * @param amount the amount to set
     * @return a new {@code Date} set with the specified value
     * @throws IllegalArgumentException if the date is null
     * @since 2.4
     */
    public static Date setMonths(Date date, int amount) {
        return set(date, Calendar.MONTH, amount);
    }

    /**
     * Sets the specified field to a date returning a new object.  
     * This does not use a lenient calendar.
     * The original {@code Date} is unchanged.
     *
     * @param date  the date, not null
     * @param calendarField  the {@code Calendar} field to set the amount to
     * @param amount the amount to set
     * @return a new {@code Date} set with the specified value
     * @throws IllegalArgumentException if the date is null
     * @since 2.4
     */
    private static Date set(Date date, int calendarField, int amount) {
        if (date == null) {
            throw new IllegalArgumentException("The date must not be null");
        }
        // getInstance() returns a new object, so this method is thread safe.
        Calendar c = Calendar.getInstance();
        c.setLenient(false);
        c.setTime(date);
        c.set(calendarField, amount);
        return c.getTime();
    }
}

Related

  1. setHour(Date date, int hours)
  2. setHours(Date date, int amount)
  3. setMilliseconds(Date date, int amount)
  4. setMinute(Date date, int minutes)
  5. setMinutes(Date date, int amount)
  6. setSeconds(Date date, int amount)
  7. setTime(Date date, int hour, int minute, int second, int millisecond)
  8. setTime(Date date, int hours, int minutes)
  9. setTime(Date date, int hours, int minutes, int seconds)