//获得n天后的日期
* 获取N天前的时间
* @param day
* @return
*/
* yyyy年MM月dd日星期
* @return
*/
@SuppressWarnings("deprecation")
// 计算当月最后一天,返回字符串
//获取当天时间
// 获得当前日期与本周日相差的天数
public static Date getTime(int day){
Calendar objCalendar=Calendar.getInstance();
objCalendar.add(Calendar.DATE,day);
Date objDate=objCalendar.getTime();
System.out.print(objDate);
return objDate;
}
/**
* 获取N天前的时间
* @param day
* @return
*/
public static Date getBeforeDays(int day){
Calendar cal=Calendar.getInstance();
int inputDayOfYear = cal.get(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR , inputDayOfYear-day );
Date d =cal.getTime();
return d;
}
/**
*将日期格式的字符串转换成Date类型
*@param date 字符串类型的日期
*/
public static Date Dateformat2(String date) throws ParseException {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date mydate=f.parse(date);
return mydate;
}
/
**
*指定类型方式的字符串日期转换成Date
*/
public static Date format(String date, String pattern) {
if (pattern == null || pattern.equals("") || pattern.equals("null")) {
pattern = "yyyy-MM-dd HH:mm:ss";
}
if (date == null || date.equals("") || date.equals("null")) {
return new Date();
}
Date d = null;
try {
d = new java.text.SimpleDateFormat(pattern).parse(date);
} catch (ParseException pe) {
}
return d;
}
/**
* 得到指定月后(前)的日期 参数传负数即可
* @param month 想得到的时间
* @param dateStr 日期格式必须是yyyy-MM-dd HH:mm:ss
* @return yyyy-MM-dd HH:mm:ss 时间
*/
public static String getAfterMonth(int month,String dateStr) {
Calendar c = Calendar.getInstance();//获得一个日历的实例
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try{
date = sdf.parse(dateStr);//初始日期
}catch(Exception e){
}
c.setTime(date);//设置日历时间
c.add(Calendar.MONTH,month);//在日历的月份上增加6个月
String strDate = sdf.format(c.getTime());//的到你想要得6个月后的日期
return strDate;
}
/**
* 取得当前时间H小时后的时间
* @param m
* @return
*/
@SuppressWarnings("static-access")
public static String getCalendarTime(int h) {
String str = "";
Calendar cl = Calendar.getInstance();
cl.add(cl.HOUR_OF_DAY, h);
str = cl.get(cl.YEAR) + "年" + (cl.get(cl.MONTH) + 1) + "月"
+ (cl.get(cl.DAY_OF_MONTH)) + "日" + (cl.get(cl.HOUR_OF_DAY))
+ "时" + (cl.get(cl.MINUTE)) + "分" + (cl.get(cl.SECOND)) + "秒";
return str;
}
/**
* yyyy年MM月dd日星期
* @return
*/
@SuppressWarnings("deprecation")
public static String getDate() {
StringBuffer sb = new StringBuffer();
Date d = new Date();
int hours = d.getHours();
int minute = d.getMinutes();
String[] weekdays = { "日", "一", "二", "三", "四", "五", "六" };
sb.append((d.getYear() + 1900));
sb.append("年");
sb.append(d.getMonth() + 1);
sb.append("月");
sb.append(d.getDate());
sb.append("日星期");
sb.append(weekdays[d.getDay()]);
return sb.toString();
}
/**
* 返回两个日期相差的天数
* @param d1 长的时间
* @param d2 短的时间
* @return int
*/
public static int dispersionDay(String strDate1, String strDate2) {
int iDay = 0;//记录相差的天数
try {
int index1,index2;
index1=strDate1.indexOf('-');
index2=strDate1.lastIndexOf('-');
int nYear, nMonth, nDay;
nYear = Integer.parseInt(strDate1.substring(0, index1));
nMonth = Integer.parseInt(strDate1.substring(index1+1, index2));
nDay = Integer.parseInt(strDate1.substring(index2+1));
Calendar objCalendarDate1 = Calendar.getInstance();//此函数new GregorianCalendar()
objCalendarDate1.set(nYear, nMonth, nDay);
index1=strDate2.indexOf('-');
index2=strDate2.lastIndexOf('-');
nYear = Integer.parseInt(strDate2.substring(0, index1));
nMonth = Integer.parseInt(strDate2.substring(index1+1, index2));
nDay = Integer.parseInt(strDate2.substring(index2+1));
Calendar objCalendarDate2 = Calendar.getInstance();
objCalendarDate2.set(nYear, nMonth, nDay);
if (objCalendarDate2.equals(objCalendarDate1))
return 0;
if (objCalendarDate2.after(objCalendarDate1)){//如果strDate2>strDate1
while (!objCalendarDate2.equals(objCalendarDate1)) {
objCalendarDate1.add(objCalendarDate1.DATE, 1);
iDay++;
}
iDay = -iDay;// 负号代表 还相距几天,正号代表已过去几天。。。
} else{//如果strDate1>strDate2
while (!objCalendarDate2.equals(objCalendarDate1)) {
objCalendarDate2.add(objCalendarDate2.DATE, 1);
iDay++;
}
}
} catch (Exception e) {
}
return iDay;
}
//判断时间是否在某一时间段内
public static boolean IsTimeIn(Date time,Date begin,Date end){
return time.getTime()>=begin.getTime() && time.getTime()<=end.getTime();
}
//获得本周一的日期
public static Date getMondayOFWeek(){
int mondayPlus = getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus);
Date monday = currentDate.getTime();
return monday;
}
// 获得本周星期日的日期
<pre name="code" class="java">public static Date getCurrentWeekday() {
int mondayPlus = getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus+6);
Date monday = currentDate.getTime();
return monday;
}
// 获得上周星期一的日期
public static Date getPreviousWeekday() {
int mondayPlus =getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * -1);
Date monday = currentDate.getTime();
// DateFormat df = DateFormat.getDateInstance();
// String preMonday = df.format(monday);
return monday;
}
// 获得上周星期日的日期
public static Date getPreviousWeekSunday() {
// WEEKS--;
int mondayPlus = getMondayPlus();
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus -1);
Date monday = currentDate.getTime();
// DateFormat df = DateFormat.getDateInstance();
// String preMonday = df.format(monday);
return monday;
}
//获取当月第一天
public static String getFirstDayOfMonth(){
String str = "";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE,1);//设为当前月的1号
str=sdf.format(lastDate.getTime());
return str;
}
// 计算当月最后一天,返回字符串
public static String getDefaultDay(){
String str = "";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.DATE,1);//设为当前月的1号
lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号
lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
str=sdf.format(lastDate.getTime());
return str;
}
//获取当天时间
public static String getNowTime(String dateformat){
Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式
String hehe = dateFormat.format(now);
return hehe;
}
// 获得当前日期与本周日相差的天数
public static int getMondayPlus() {
Calendar cd = Calendar.getInstance();
// 获得今天是一周的第几天,星期日是第一天,星期二是第二天……
int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1; //因为按中国礼拜一作为第一天所以这里减1
if (dayOfWeek == 1) {
return 0;
} else {
return 1-dayOfWeek;
}
}