Java获取本周一、上周一、下周一时间

摘要:
获取本周一的时间,然后+/-1是下周/上周一的时间importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;publicclassDateTest{publicstaticDategeLastWeekMonday(Datedate){Calendarcal=Calendar.getInstance(

获取本周一时间,然后+/-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

免责声明:文章转载自《Java获取本周一、上周一、下周一时间》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇JAVA获取当前日期时间所在周的周一和周日日期vue截取字符串下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi常用字符串函数

Delphi常用字符串函数 一、字符转换函数1、ord(input[i])返回字符表达式 input 左端起第 I 字符的ASCII 码值。2、CHAR()将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串...

.Net程序员学用Oracle系列(2):准备测试环境

1、准备说明 1.1、为什么要创建的测试环境? 1.2、了解 Oracle 实例的默认用户 2、环境说明 2.1、创建环境 2.2、更新环境 2.3、卸载环境 1、准备说明 1.1、为什么要创建的测试环境? 我在构思本系列博客的时候,并没有想到要做什么准备;但当我写完六七篇稿子的时候,我忽然意识到如下的一系列问题: 有些跟时...

shell 日期加减运算

日期运算 加上一天 ➜ ~ date 2020年 09月 03日 星期四 17:18:23 CST ➜ ~ date -d "+1 day" +%Y-%m-%d 2020-09-04 ➜ ~ 指定日期加减 ➜ ~ date -d "2020-09-10 -1 day " +%Y-%m-%d 2020-09-09 加上一周 ➜ ~ date...

document cookie用法

cookie概述 曾经利用一个不变的框架来存储购物栏数据,而商品显示页面是不断变化的,尽管这样能达到一个模拟 全局变量的功能,但并不严谨。例如在导航框架页面内右击,单击快捷菜单中的【刷新】命令,则所有的JavaScript变量都会丢失。因此,要实现严格的 跨页面全局变量,这种方式是不行的, JavaScript中的另一个机制:cookie,则可以达到真正全局...

mysql 时间格式与日期格式转换,去除datetime中的具体时间

DATE_FORMAT(`addtime`,'%Y-%m-%d')时间格式转成字符串 time_format('1924-01-02', '%Y-%m-%d') 字符串转成时间格式 CONVERT(addtime,DATE),CHAR) 时间格式转成字符串格式 去除日期中的小时分钟... UPDATE htmlinfo SET `addtime` =...

oracle 函数3

93。STDDEV 功能描述:计算当前行关于组的标准偏离。(Standard Deviation)SAMPLE:下例返回部门30按雇佣日期排序的薪水值的累积标准偏离 SELECT last_name, hire_date,salary, STDDEV(salary) OVER (ORDER BY hire_date) "StdDev"FROM employe...