All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiongyingqi.calendar.CalendarBuilder Maven / Gradle / Ivy

The newest version!
package com.xiongyingqi.calendar;

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

/**
 * Created by qixiongyingqi.com on 14-12-11.
 */
public class CalendarBuilder {
    private Calendar calendar;// 原始日期
    private Calendar calculateCalendar;// 计算结果

    private CalendarBuilder() {
    }

    public static CalendarBuilder newBuilder(Date date) {
        CalendarBuilder calendarBuilder = new CalendarBuilder();
        Calendar instance = Calendar.getInstance();
        Calendar instance2 = Calendar.getInstance();
        instance.setTime(date);
        instance2.setTime(date);
        calendarBuilder.calendar = instance;
        calendarBuilder.calculateCalendar = instance2;

        return calendarBuilder;
    }

    public static CalendarBuilder newBuilder() {
        return newBuilder(new Date());
    }

    public CalendarBuilder time(Date date) {
        calendar.setTime(date);
        calculateCalendar.setTime(date);
        return this;
    }

    /**
     * 增加plusMilliSeconds毫秒
     * @param plusMilliSeconds
     * @return
     */
    public CalendarBuilder nextMilliSeconds(int plusMilliSeconds) {
        calculateCalendar.add(Calendar.MILLISECOND, plusMilliSeconds);
        return this;
    }

    /**
     * 增加plusSeconds秒
     * @param plusSeconds
     * @return
     */
    public CalendarBuilder nextSeconds(int plusSeconds) {
        calculateCalendar.add(Calendar.SECOND, plusSeconds);
        return this;
    }

    /**
     * 增加plusMinutes分钟
     * @param plusMinutes
     * @return
     */
    public CalendarBuilder nextMinutes(int plusMinutes) {
        calculateCalendar.add(Calendar.MINUTE, plusMinutes);
        return this;
    }

    /**
     * 增加plusHours小时
     * @param plusHours
     * @return
     */
    public CalendarBuilder nextHours(int plusHours) {
        calculateCalendar.add(Calendar.HOUR, plusHours);
        return this;
    }

    /**
     * 增加plusDays天
     * @param plusDays
     * @return
     */
    public CalendarBuilder nextDays(int plusDays) {
        calculateCalendar.add(Calendar.DAY_OF_YEAR, plusDays);
        return this;
    }

    /**
     * 增加plusWeeks星期
     * @param plusWeeks
     * @return
     */
    public CalendarBuilder nextWeeks(int plusWeeks) {
        calculateCalendar.add(Calendar.WEEK_OF_YEAR, plusWeeks);
        return this;
    }

    /**
     * 增加plusMonths月
     * @param plusMonths
     * @return
     */
    public CalendarBuilder nextMonths(int plusMonths) {
        calculateCalendar.add(Calendar.MONTH, plusMonths);
        return this;
    }

    /**
     * 增加plusYears年
     * @param plusYears
     * @return
     */
    public CalendarBuilder nextYears(int plusYears) {
        calculateCalendar.add(Calendar.YEAR, plusYears);
        return this;
    }

    /**
     * 增加指定字段的数量
     * @param field 字段{@link java.util.Calendar#set(int, int)}
     * @param plus
     * @return
     */
    public CalendarBuilder next(int field, int plus) {
        calculateCalendar.set(field, calculateCalendar.get(field) + plus);
        return this;
    }


    public Calendar getCalendar() {
        return calendar;
    }

    public void setCalendar(Calendar calendar) {
        this.calendar = calendar;
    }

    public Calendar getCalculateCalendar() {
        return calculateCalendar;
    }

    public void setCalculateCalendar(Calendar calculateCalendar) {
        this.calculateCalendar = calculateCalendar;
    }

    /**
     * 获取计算结果
     *
     * @return
     */
    public Date getResultTime() {
        return calculateCalendar.getTime();
    }

    /**
     * 获取原始时间
     *
     * @return
     */
    public Date getTime() {
        return calendar.getTime();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy