/**
* 获取输入日历今天的起止时间
* @param cal
* @return
*/
public static List<String> getCurrentDay(Calendar cal){
List<String> list=new ArrayList<>();
Calendar calendar=(Calendar) cal.clone();
String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
String stop=start;
list.add(start);
list.add(stop);
return list;
}
/**
* 获取输入日历明天的起止时间
* @param cal
* @return
*/
public static List<String> getNextDay(Calendar cal){
List<String> list=new ArrayList<>();
Calendar calendar=(Calendar) cal.clone();
calendar.add(Calendar.DATE, 1);
String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
String stop=start;
list.add(start);
list.add(stop);
return list;
}
/**
* 获取输入日历的本周起止时间
* @param cal 输入的日历
* @return 该日历的本周的起止时间字符串
*/
public static List<String> getCurrentWeek(Calendar cal){
List<String> list=new ArrayList<>();
Calendar calendar=(Calendar) cal.clone();
int week=cal.get(Calendar.DAY_OF_WEEK);
//减去的天数
int minusDay=week!=1?week-2:6;
//本周的第一天
calendar.add(Calendar.DATE, -minusDay);
String start= getDateToString(calendar.getTime(), "yyyy/MM/dd");
//本周的最后一天
calendar.add(Calendar.DATE, 6);
String stop=getDateToString(calendar.getTime(), "yyyy/MM/dd");
list.add(start);
list.add(stop);
return list;
}
/**
* 获取输入日历的下周起止时间
* @param cal 输入的日历
* @return 该日历的下周的起止时间字符串
*/
public static List<String> getNextWeek(Calendar cal){
List<String> list=new ArrayList<>();
Calendar calendar=(Calendar) cal.clone();
int week=cal.get(Calendar.DAY_OF_WEEK);
//减去的天数
int minusDay=week!=1?week-2:6;
//下周的第一天
calendar.add(Calendar.DATE, 7-minusDay);
String start= getDateToString(calendar.getTime(), "yyyy/MM/dd");
//下周的最后一天
calendar.add(Calendar.DATE, 6);
String stop=getDateToString(calendar.getTime(), "yyyy/MM/dd");
list.add(start);
list.add(stop);
return list;
}
/**
* 获取输入日历本月的起止时间
* @param cal
* @return
*/
public static List<String> getCurrentMonth(Calendar cal){
List<String> list=new ArrayList<>();
Calendar calendar=(Calendar) cal.clone();
calendar.set(Calendar.DATE, 1);
String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
String stop=start;
list.add(start);
list.add(stop);
return list;
}
/**
* 获取输入日历下月的起止时间
* @param cal
* @return
*/
public static List<String> getNextMonth(Calendar cal){
List<String> list=new ArrayList<>();
Calendar calendar=(Calendar) cal.clone();
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DATE, 1);
String start=getDateToString(calendar.getTime(), "yyyy/MM/dd");
String stop=start;
list.add(start);
list.add(stop);
return list;
}
/**
* 将一个表示时间的Calendar值按年 月 日 小时 分钟 秒 调整,形成新的时间
* @param cal 表示待调整的日历
* @param year 调整的年数,正数为向后调整,负数为向前调整
* @param month 调整的月数,正数为向后调整,负数为向前调整
* @param day 调整的天数,正数为向后调整,负数为向前调整
* @param hour 调整的时数,正数为向后调整,负数为向前调整
* @param min 调整的分数,正数为向后调整,负数为向前调整
* @param sec 调整的秒数,正数为向后调整,负数为向前调整
* @return 调整后的日历
*/
public static Calendar getAdjustCalendar(Calendar cal, int year, int month,
int day,int hour,int min,int sec){
Calendar calendar=(Calendar) cal.clone();
calendar.add(Calendar.YEAR, year);
calendar.add(Calendar.MONTH, month);
calendar.add(Calendar.DATE,day );
calendar.add(Calendar.HOUR, hour);
calendar.add(Calendar.MINUTE, min);
calendar.add(Calendar.SECOND, sec);
return calendar;
}
/**
* 将一个表示时间的Calendar值按指定的域调整,形成新的时间
* @param cal 表示待调整的日历
* @param field 要调整的域(Calendar.YEAR,Calendar.MONTH,Calendar.DATE,Calendar.HOUR,Calendar.MINUTE,Calendar.SECOND)
* @param mount 调整的数值,正数为向后调整,负数为向前调整
* @return 调整后的日历
*/
public static Calendar getAdjustCalendar(Calendar cal,int field,int mount){
Calendar calendar=null;
switch (field) {
case Calendar.YEAR:
calendar=getAdjustCalendar(cal, mount, 0, 0, 0, 0, 0);
break;
case Calendar.MONTH:
calendar = getAdjustCalendar(cal, 0, mount, 0, 0, 0, 0);
break;
case Calendar.DATE:
calendar = getAdjustCalendar(cal, 0, 0, mount, 0, 0, 0);
break;
case Calendar.HOUR:
calendar = getAdjustCalendar(cal, 0, 0, 0, mount, 0, 0);
break;
case Calendar.MINUTE:
calendar = getAdjustCalendar(cal, 0, 0, 0, 0, mount, 0);
break;
case Calendar.SECOND:
calendar = getAdjustCalendar(cal, 0, 0, 0, 0, 0, mount);
break;
default:
calendar=null;
break;
}
return calendar;
}
/**
* 获取指定日期的字符串格式
* @param date 指定的日期
* @param pattern 指定的格式
* @return 转换之后的字符串
*/
public static String getDateToString(Date date,String pattern){
SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
String str=simpleDateFormat.format(date);
System.out.println(str);
return str ;
}
/**
* 获取指定字符串的日期格式
* @param str 指定字符串
* @param pattern 指定的格式
* @return 转换之后的日期
* @throws ParseException 解析异常
*/
public static Date getStringToDate(String str,String pattern) throws ParseException{
SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern);
Date date=simpleDateFormat.parse(str);
System.out.println(date);
return date;
}