java技术获取本周、上周、本月的开始结束时间

java技术获取本周、上周、本月的开始结束时间

java技术获取本周、上周、本月的开始结束时间-上流阁

计算本周周一和周日日期

/**
* 计算本周周一和周日日期
*
* @return MAP
* @author jiangfengcheng
*/
private static HashMap<String, String> getWeekByDate() {
HashMap<String, String> dayMap = new HashMap<String, String>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
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);
dayMap.put("Monday", imptimeBegin);
cal.add(Calendar.DATE, 6);
String imptimeEnd = sdf.format(cal.getTime());
System.out.println("所在周星期日的日期:" + imptimeEnd);
dayMap.put("SunDay", imptimeEnd);
return dayMap;
}

根据当前日期获得上周的日期区间(上周周一和周日日期)

/**
* 根据当前日期获得上周的日期区间(上周周一和周日日期)
*
* @return
* @author jiangfengcheng
*/
public static HashMap<String, String> getLastTimeInterval() {
HashMap<String, String> dayMap = new HashMap<String, String>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;
int offset1 = 1 - dayOfWeek;
int offset2 = 7 - dayOfWeek;
calendar1.add(Calendar.DATE, offset1 - 7);
calendar2.add(Calendar.DATE, offset2 - 7);
// 上周星期一
String lastBeginDate = sdf.format(calendar1.getTime());
System.out.println(lastBeginDate);
dayMap.put("Monday", lastBeginDate);
// 上周星期日
String lastEndDate = sdf.format(calendar2.getTime());
System.out.println(lastEndDate);
dayMap.put("SunDay", lastEndDate);
return dayMap;
}

获得本月第一天0点时间本月最后一天24点时间

/**
* 获得本月第一天0点时间本月最后一天24点时间
* @return
* @author jiangfengcheng
*/
public static HashMap<String, String> getTimesMonth() {
HashMap<String, String> dayMap = new HashMap<String, String>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
Calendar cals = Calendar.getInstance();
cals.set(cals.get(Calendar.YEAR), cals.get(Calendar.MONDAY), cals.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cals.set(Calendar.DAY_OF_MONTH, cals.getActualMinimum(Calendar.DAY_OF_MONTH));
Calendar cale = Calendar.getInstance();
cale.set(cale.get(Calendar.YEAR), cale.get(Calendar.MONDAY), cale.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
cale.set(Calendar.DAY_OF_MONTH, cale.getActualMaximum(Calendar.DAY_OF_MONTH));
cale.set(Calendar.HOUR_OF_DAY, 24);
// 本月第一天
String lastBeginDate = sdf.format(cals.getTime());
System.out.println(lastBeginDate);
dayMap.put("Months", lastBeginDate);
// 本月第二天
String lastEndDate = sdf.format(cale.getTime());
System.out.println(lastEndDate);
dayMap.put("Monthe", lastEndDate);

return dayMap;
}

用法

String two = null;
String three = null;

// 本周
if ("1".equals(type)) {
two = getWeekByDate().get("Monday");
three = getWeekByDate().get("SunDay");
// 上周
} else if ("2".equals(type)) {
two = getLastTimeInterval().get("Monday");
three = getLastTimeInterval().get("SunDay");
// 本月
} else if ("3".equals(type)) {
two = getTimesMonth().get("Months");
three = getTimesMonth().get("Monthe");
}

*文章为作者独立观点,不代表上流阁立场
本文由 江风成 授权 上流阁 发表,并经上流阁编辑。转载此文章须经作者同意,并请附上出处(上流阁)及本页链接。原文链接https://www.o6c.com/java/2016/11/18/757.html
发表评论

坐等沙发
相关文章
jar包解压后,修改完配置文件,再还原成jar包
jar包解压后,修改完配置文件,再还原成…
JAVA DES 十六进制加密
JAVA DES 十六进制加密
HTML中Data URI scheme BASE64 文件的拼接头
HTML中Data URI scheme BASE64 文件的拼…
windows BAT 文件 多个命令同步执行
windows BAT 文件 多个命令同步执行
java 中 封装BigDecimal常用计算类MathUtils
java 中 封装BigDecimal常用计算类MathU…
JDBC原生链接Mysql数据根据表映射生成bean实体类
JDBC原生链接Mysql数据根据表映射生成be…
javaweb开发程序员php开发,微信开发。接受定制开发

最新评论