zoukankan      html  css  js  c++  java
  • Java获取本周一、上周一、下周一时间

    获取本周一时间,然后+/-1就是下周/上周一的时间

    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
     
    public class DateTest {
        public static Date geLastWeekMonday(Date date) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(getThisWeekMonday(date));
            cal.add(Calendar.DATE, -7);
            return cal.getTime();
        }
     
        public static Date getThisWeekMonday(Date date) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            // 获得当前日期是一个星期的第几天
            int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
            if (1 == dayWeek) {
                cal.add(Calendar.DAY_OF_MONTH, -1);
            }
            // 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一
            cal.setFirstDayOfWeek(Calendar.MONDAY);
            // 获得当前日期是一个星期的第几天
            int day = cal.get(Calendar.DAY_OF_WEEK);
            // 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
            cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
            return cal.getTime();
        }
     
        public static Date getNextWeekMonday(Date date) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(getThisWeekMonday(date));
            cal.add(Calendar.DATE, 7);
            return cal.getTime();
        }
     
        public static void main(String[] args) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            try {
                Date date = sdf.parse("2017-09-10");
                System.out.println("今天是" + sdf.format(date));
                System.out.println("上周一" + sdf.format(geLastWeekMonday(date)));
                System.out.println("本周一" + sdf.format(getThisWeekMonday(date)));
                System.out.println("下周一" + sdf.format(getNextWeekMonday(date)));
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    输出结果:

    今天是2017-09-10
    上周一2017-08-28
    本周一2017-09-04
    下周一2017-09-11
  • 相关阅读:
    cf1011 E. Border
    cf 1011 D. Rocket
    cf 1011C. Fly
    cf 1015 E2. Stars Drawing (Hard Edition)
    cf 1015 E1. Stars Drawing (Easy Edition)
    Walking Between Houses(Codeforces-1015D)
    D. Vasya And The Matrix 构造
    点击数据将之前信息隐藏显示当前(手机端页面)
    连接返回上一步(上一个页面)
    公共的css样式
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/14918482.html
Copyright © 2011-2022 走看看