首页 > 其他分享 >获取当前时间的周一

获取当前时间的周一

时间:2023-05-31 14:44:05浏览次数:53  
标签:set return MONDAY 获取 当前 cal date 周一 Calendar

package com.alpari.wang.utils;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Calendar;
import java.util.Date;

@Slf4j
@Component
public class DateUtils {

    private DateUtils() {

    }

    /**
     * 根据year年所在第week周,获取周一的时间,以及所在月份 获取Calendar
     * @param year 年份
     * @param week 当前年所在的第几周,以每年的第一个周一为第一周
     * @return 获取Calendar 可获取周一的时间,以及所在月份
     */
    public static Calendar weekToDayFormate(Integer year, Integer week){

        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.WEEK_OF_YEAR, week);
        cal.setFirstDayOfWeek(Calendar.MONDAY);
        cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        //一年第一周最小天数为4天,按照iso标准计算
        cal.setMinimalDaysInFirstWeek(4);
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        return cal;
    }

    /**
     * 根据任意日期获取当前周周一时间
     * @param date
     * @return
     */
    public static Date getMonday(Date date) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        return org.apache.commons.lang3.time.DateUtils.truncate(c.getTime(), Calendar.DATE);
    }

    /**
     * 获取入参时间所在年周xxxx年xx周6位
     * @param date
     * @return
     */
    public static String getYearWeek(Date date) {
        Calendar cal = Calendar.getInstance();
        //设置一周起始时间为周一
        cal.setFirstDayOfWeek(Calendar.MONDAY);
        //一年第一周最小天数为4天,按照iso标准计算
        cal.setMinimalDaysInFirstWeek(4);
        cal.setTime(date);
        //设置装运日期所在的年周
        String yearWeek;
        //跨年,当前时间为一月初,按照iso算法为去年的第52或者53周,故年分减一
        if(cal.get(Calendar.MONTH) + 1 == 1 && 52 <= cal.get(Calendar.WEEK_OF_YEAR)) {
            yearWeek = cal.get(Calendar.YEAR) - 1 + String.format("%02d", cal.get(Calendar.WEEK_OF_YEAR));
        }
        //当前时间为12月,按照iso算法周数为下一年第一周,故年份加一
        else if(cal.get(Calendar.MONTH) + 1 == 12 && 1 == cal.get(Calendar.WEEK_OF_YEAR)) {
            yearWeek = cal.get(Calendar.YEAR) + 1 + String.format("%02d", cal.get(Calendar.WEEK_OF_YEAR));
        }
        else {
            yearWeek = cal.get(Calendar.YEAR) + String.format("%02d", cal.get(Calendar.WEEK_OF_YEAR));
        }
        return yearWeek;
    }
}

标签:set,return,MONDAY,获取,当前,cal,date,周一,Calendar
From: https://www.cnblogs.com/alpari-wang/p/17446037.html

相关文章

  • 获取视频截图
    1、使用canvas对video元素进行截图functiongetVideoFrame(video){constcanvas=document.createElement("canvas");canvas.width=video.videoWidth;canvas.height=video.videoHeight;canvas.getContext("2d").drawImage(video,0,0);returncan......
  • C++ 在函数内部输出当前类名方式
    开发环境:QtCreator C++1usingnamespacestd;23/*基类汽车*/4classCar5{6public:7Car(){}8virtual~Car(){}9virtualvoidmove(void);10};1112/*基本属性汽车运动*/13voidCar::move(void)14{15cout<<......
  • 获取百度回收网址
    importrandomimporttimefromseleniumimportwebdriverimportrequestsfromlxmlimportetreefromselenium.webdriver.common.byimportBydefrequest_zy(url):response=requests.get(url=url)returnresponse.urldriver=webdriver.Chrome()u......
  • 【shell】ubuntu循环输出当前日期
    1、场景  我想实时输出当前系统时间,对比日志之间的时间差 2、方法#!/bin/bashwhile(true)doecho$(date+%F%n%T)sleep1done 3、date命令参数~$date--helpUsage:date[OPTION]...[+FORMAT]or:date[-u|--utc|--universal][MMDDhhmm[[CC]YY][......
  • 获取设备基线性能的想法与实践
    获取设备基线性能的想法与实践背景产品的发展离不开功能实现和性能满足功能实现还是可以通过功能测试,UAT等方式来验证。性能是否满足有时候比较难处理。虽然可以通过压测。但是压测时总会有太多的变量较难控制一般客户也不会提供一套跟生产一样的环境进行验证。感觉此时......
  • parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的colum
    Parquet是Twitter贡献给开源社区的一个列数据存储格式,采用和Dremel相同的文件存储算法,支持树形结构存储和基于列的访问。ClouderaImpala也将使用Parquet作为底层的存储格式。在很多大数据的应用场景下面,比如电信行业,具有一定规则的数据,字段很多,但是每次查询仅仅针对其中少数的几个......
  • Emlog Pro 自动获取文章内第一张图片作封面图
    自从更新EmlogPro程序之后,使用的是Markdown编辑器,因为此编辑器的特殊性,数据库存储的是特定语法,不是html代码,所以之前的获取文章封面的函数都不可用了。 本次给大家带来最新获取文章封面的函数,此函数需要根据文章的gid字段获取文章封面 如果文章中的封面字段为空,则自动根据......
  • 从 C# chart 中获取数据-2
    新增功能:Excel_EA1.将归档数据从WINCC的归档目录中拷贝出来,改名存储  2.使用WinCCArchiveConnector建立WINCC数据库的连接  2.1添加  2.2连接 改名后,连接是空的,名字必须默认:  原来的数据库文件拷贝过来后,显示文件,连接正常。 2.3添加不同的......
  • 从 C# chart 中获取数据-1
    已经可以从WINCC的归档数据库获取数据,并且以图形的方式显示出来了。现在要实现一个功能,就是建一个相当于WINCC历史趋势的标尺,移动后,下面显示数据,点击按钮,记录这组数据。获取的数据,可以进行后面的处理,比如作为神经网络的输入数据。下面对各个例子记录实现过程。 1.在excel中......
  • 每周一记13
    什么是 Embedding?你可能在 Twitter 上已经看到这个词被无数次提及。简单来说,Embedding 就是一个多维向量数组,由系列数字组成。它们能够代表任何东西,比如文本、音乐、视频等等。我们这里将主要关注文本。图片创建 Embedding 的过程非常简单。这主要依靠 Embedding 模型(例如......