您的位置:首页 > 其它

项目中涉及到的日期类的实用方法

2016-01-19 16:49 288 查看
// 判断开始时间在星期几的位置
public static int getStartTimeIndex(Date startTime) {
SimpleDateFormat sdf = new SimpleDateFormat("EEE");
System.out.println("今天的日期: " + sdf.format(startTime));
String str = sdf.format(startTime);
if ("星期日".equals(str)) {
return 1;
} else if ("星期一".equals(str)) {
return 2;
} else if ("星期二".equals(str)) {
return 3;
} else if ("星期三".equals(str)) {
return 4;
} else if ("星期四".equals(str)) {
return 5;
} else if ("星期五".equals(str)) {
return 6;
} else if ("星期六".equals(str)) {
return 7;
}
return 0;
}
//获得两个日期的中间间隔天数
public static int getDateSpace(Date date1, Date date2) {

int result = 0;

Calendar calst = Calendar.getInstance();
;
Calendar caled = Calendar.getInstance();

calst.setTime(date1);
caled.setTime(date2);

// 设置时间为0时
calst.set(Calendar.HOUR_OF_DAY, 0);
calst.set(Calendar.MINUTE, 0);
calst.set(Calendar.SECOND, 0);
caled.set(Calendar.HOUR_OF_DAY, 0);
caled.set(Calendar.MINUTE, 0);
caled.set(Calendar.SECOND, 0);
// 得到两个日期相差的天数
int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst.getTime().getTime() / 1000)) / 3600 / 24;

return days;
}

/**
* 根据日期获得所在周的日期
*
* @param mdate
* @return
*/
@SuppressWarnings("deprecation")
public static List<Date> dateToWeek(Date mdate) {
int b = mdate.getDay();
Date fdate;
List<Date> list = new ArrayList<Date>();
Long fTime = mdate.getTime() - (b + 1) * 24 * 3600000;
for (int a = 1; a <= 7; a++) {
fdate = new Date();
fdate.setTime(fTime + (a * 24 * 3600000));
list.add(a - 1, fdate);
}
return list;
}

//获取上一周所有的日期
@SuppressWarnings("deprecation")
public static List<Date> dateToLastWeek(Date mdate) {
int b = mdate.getDay();
Date fdate;
List<Date> list = new ArrayList<Date>();
Long fTime = mdate.getTime() - (b + 8) * 24 * 3600000;
for (int a = 1; a <= 7; a++) {
fdate = new Date();
fdate.setTime(fTime + (a * 24 * 3600000));
list.add(a - 1, fdate);
}
return list;
}

// 日期向前向后推迟几天

public static Date delayDate(Date enddate, int num) {
try {
SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
Calendar date = Calendar.getInstance();
date.setTime(enddate);
date.set(Calendar.DATE, date.get(Calendar.DATE) + num);
Date newDate = dft.parse(dft.format(date.getTime()));
return newDate;
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

// 根据日期获取到那周的周一是哪天
public static Date getMonday(Date time) {

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
cal.setTime(time);
//判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天

if (1 == dayWeek) {
cal.add(Calendar.DAY_OF_MONTH, -1);
}

//   System.out.println("要计算日期为:"+sdf.format(cal.getTime()));
cal.setFirstDayOfWeek(Calendar.MONDAY);//设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
int day = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
cal.add(Calendar.DATE, cal.getFirstDayOfWeek()-day);//根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

String imptimeBegin = sdf.format(cal.getTime());
System.out.println("所在周星期一的日期:"+imptimeBegin);
try {
System.out.println(sdf.parse(imptimeBegin));
return sdf.parse(imptimeBegin);
} catch (ParseException e) {
e.printStackTrace();
}

return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Date