java 根据当前日期,获取当周,月开始和结束日期

编程入门 行业动态 更新时间:2024-10-21 02:56:18

java 根据当前<a href=https://www.elefans.com/category/jswz/34/1771397.html style=日期,获取当周,月开始和结束日期"/>

java 根据当前日期,获取当周,月开始和结束日期

根据当前时间获取当月开始和结束日期

  • 1、根据当前时间获取当月开始和结束日期
  • 2、根据当前日期获取一周的开始和结束日期

)

1、根据当前时间获取当月开始和结束日期


import java.util.Calendar;
import java.util.Date;/*** @Author Mouoal* @Description: 说明用途* @Date 2023/10/19 9:41* @Version 1.0*/
public class DateUtils {public static Date getCurrentDate() {String ds = "202030913";return new Date();}public static Date getFirstDayOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, 1);return calendar.getTime();}public static Date getLastDayOfMonth(Date date) {Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));return calendar.getTime();}public static void main(String[] args) {Date currentDate = getCurrentDate();System.out.println(currentDate);Date firstDayOfMonth = getFirstDayOfMonth(currentDate);Date lastDayOfMonth = getLastDayOfMonth(currentDate);System.out.println("当前日期: " + currentDate);System.out.println("本月第一天: " + firstDayOfMonth);System.out.println("本月最后一天: " + lastDayOfMonth);}
}

2、根据当前日期获取一周的开始和结束日期


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.function.Function;/*** @Author Mouoal* @Description: 说明用途* @Date 2023/10/13 15:44* @Version 1.0*/
public class ddd {public static class DealWeek {public static void main(String[] args) throws ParseException {String date = "20230915";Calendar c = getCalendarByDateStr(date);System.out.println(c.get(Calendar.WEEK_OF_YEAR));String[] result = getStartAndEndDayByDate(date);System.out.println("周一日期为:" + result[0]);System.out.println("周天日期为:" + result[1]);}//根据日期获取该天所在周的开始与结束日期(周跨年周,只计算本年内那部分天数)public static String[] getStartAndEndDayByDate(String yyyyMMdd) throws ParseException{String[] dateZone = new String[3];Calendar cal = getCalendarByDateStr(yyyyMMdd);int year = Integer.parseInt(yyyyMMdd.substring(0, 4));Function<Integer, String> add0 = (i -> i < 10 ? "0" + i : String.valueOf(i));//补0dateZone[0] = cal.get(Calendar.YEAR) + add0.apply(cal.get(Calendar.MONTH) + 1)+ add0.apply(cal.get(Calendar.DAY_OF_MONTH));if(cal.get(Calendar.YEAR) < year)dateZone[0] = year + "0101";cal.add(Calendar.DATE, 6);dateZone[1] = cal.get(Calendar.YEAR) +add0.apply(cal.get(Calendar.MONTH) + 1) + add0.apply(cal.get(Calendar.DAY_OF_MONTH));if(cal.get(Calendar.YEAR) > year)dateZone[1] = year + "1231";dateZone[2] = String.valueOf(cal.get(Calendar.WEEK_OF_YEAR));return dateZone;}private static Calendar getCalendarByDateStr(String yyyyMMdd) throws ParseException {SimpleDateFormat sm = new SimpleDateFormat("yyyyMMdd");Date d = sm.parse(yyyyMMdd);Calendar cal = Calendar.getInstance();cal.setTime(d);//判断要计算的日期是否是周日,如果是,则减一天计算周六的,否则会出问题,计算到下一周去了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;}}
}

更多推荐

java 根据当前日期,获取当周,月开始和结束日期

本文发布于:2023-12-03 08:28:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1653216.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日期   结束   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!