一.知识储备,可以直接测试使用。
package com.wkcto.crm.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarTool {
/**
* @author robin
* @param
/
public static void main(String[] args) {
/
* try { Date today=new Date(); System.out.println(“today===”+today);
* SimpleDateFormat sFormat=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
* String format = sFormat.format(today);
* System.out.println(“format=”+format); Date parse =
* sFormat.parse(format); System.out.println(“parse===”+parse); } catch
* (ParseException e) {
* e.printStackTrace(); }
*/
CalendarTool wayTest = new CalendarTool();
Date addMonths = wayTest.addWeeks(new Date(), 2);
System.out.println(“addMonths==” + addMonths);
int calendarField;
// calendarField =Calendar.DATE; //按日计算 5
// calendarField =Calendar.WEEK_OF_MONTH; //按周计算 4
// calendarField =Calendar.MONTH; //按月计算 2
calendarField = Calendar.YEAR; // 按年计算 1
System.out.println("calendarField==" + calendarField);
}
/*
* Date addMonths(Date date, int amount) { //5代号:Calendar.DATE=5---按日计算 //
* return add(date, 5, amount); //4代号或者3代号:Calendar.WEEK_OF_MONTH=4---按周计算 //
* return add(date, 4, amount); //2代号:Calendar.MONTH=2---按月计算(季度是月*3) //
* return add(date, 2, amount); //1代号:Calendar.MONTH=1---按年计算 return
* add(date, 1, amount); }
*/
Date addWeeks(Date date, int amount) {
return add(date, 3, amount);
}
/*
* 按日计算
* public static Date addDays(Date date, int amount) { return add(date, 5,
* amount); }
* 按小时计算
* public static Date addHours(Date date, int amount) { return add(date, 11,
* amount); }
* 按分钟计算
* public static Date addMinutes(Date date, int amount) { return add(date,
* 12, amount); }
* 按秒计算
* public static Date addSeconds(Date date, int amount) { return add(date,
* 13, amount); }
* 按毫秒计算
* public static Date addMilliseconds(Date date, int amount) { return
* add(date, 14, amount); }
*/
Date add(Date date, int calendarField, int amount) {
if (date == null) {
throw new IllegalArgumentException("The date must not be null");
} else {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(calendarField, amount);
return c.getTime();
}
}
二.项目实战
/*
* 项目中遇到的案例,可以改成用上面工具类
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
try {
String b_time = pactManageBean.getB_time();
calendar.setTime(df.parse(b_time));
} catch (ParseException e) {
e.printStackTrace();
}
// getMcycle()表示计费周期(付款方式里面的计费周期)
if (pactManageBean.getMcycle().equals("1")) {
// 按日结算 日+1
calendar.add(Calendar.DATE, 1);
} else if (pactManageBean.getMcycle().equals("2")) {
// 按周结算 周+1
calendar.add(Calendar.WEEK_OF_MONTH, 1);
} else if (pactManageBean.getMcycle().equals("3")) {
// 按月结算月+1
calendar.add(Calendar.MONTH, 1);
} else if (pactManageBean.getMcycle().equals("4")) {
// 按季度结算月+3
calendar.add(Calendar.MONTH, 3);
} else if (pactManageBean.getMcycle().equals("5")) {
// 按年结算=年+1
calendar.add(Calendar.YEAR, 1);
}
// 合同的下次到期时间
pactManageBean.setNextTime(df.format(calendar.getTime()));
*/
}