日期工具,校验当年开始年份,结束年份,当月开始日期,结合素日期

简介: 日期工具,校验当年开始年份,结束年份,当月开始日期,结合素日期

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Date;

/*

  • 日期处理
    */
    public class DateUtil {
/****
 * 校验开始日期是否为输入日期的,月份的第一天
 */
public boolean isMonthOneDay(Date monthOneDay) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(monthOneDay);
    return calendar.get(Calendar.DAY_OF_MONTH) == 1;
}


/**
 * 获取输入开始日期的最后一天
 *
 * @return yyyy-mm-dd
 */
public boolean isMonthLastDay(Date monthLastDay) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(monthLastDay);
    return calendar.get(Calendar.DAY_OF_MONTH) == calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}

/***
 * 每年的第一天
 * @param yearOneDay
 */
public boolean isYearOneDay(Date yearOneDay) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(yearOneDay);

    int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
    if (dayOfYear == 1) {
        return true;
    }
    return false;
}

/****
 * 每年的最后一天
 */
public boolean isYearLastDay(Date yearLastDay) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String newYearLastDay = sdf.format(yearLastDay);

    //规定的每年最后一天日期为
    String substring = newYearLastDay.substring(0, 4);
    String gdLastYearDay = substring + "-" + "12-"+"31";

    if(newYearLastDay == gdLastYearDay){
        return true;
    }

    return false;
}

/***
 *开始日期、结束日期是否是同一个月
 * @param startDay
 * @param endDay
 * @return
 */
public boolean isInMonth(Date startDay, Date endDay) {
    Calendar calendar1 = Calendar.getInstance();
    calendar1.setTime(startDay);
    Calendar calendar2 = Calendar.getInstance();
    calendar2.setTime(endDay);
   /* int year1 = calendar1.get(Calendar.YEAR);
    int year2 = calendar2.get(Calendar.YEAR);
    int month1 = calendar1.get(Calendar.MONTH);
    int month2 = calendar2.get(Calendar.MONTH);*/
    return calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR) && calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH);
}

/***
 * 开始日期、结束日期是否为同一年
 * @param startDay
 * @param endDay
 * @return
 */
public boolean isInYear(Date startDay, Date endDay) {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    Calendar startCalendar = Calendar.getInstance();
    startCalendar.setTime(startDay);

    Calendar endCalendar = Calendar.getInstance();
    endCalendar.setTime(endDay);

    int startYearInt = startCalendar.get(Calendar.YEAR);
    int endYearInt = endCalendar.get(Calendar.YEAR);

    String startYear = sdf.format(startDay);
    String endYear =sdf.format(endDay);

    int startMonthInt = Integer.valueOf(startYear.substring(5,7));
    int endMonthInt = Integer.valueOf(endYear.substring(5,7));

    int startDayInt =  Integer.valueOf(startYear.substring(8,10));
    int endDayInt =  Integer.valueOf(endYear.substring(8,10));



    if (startYearInt == endYearInt /*&& startMonthInt==1 && endMonthInt==12 && startDayInt==1 && endDayInt == 31*/) {
        return true;
    }
    return false;
}

}

  1. 日期加一天

// 获取当前时间
Date date = new Date();
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
// 把日期往后增加一天,整数 往后推,负数往前移动
calendar.add(Calendar.DATE, 1);
// 这个时间就是日期往后推一天的结果
date = calendar.getTime();
————————————————

相关文章
|
Ubuntu Unix Linux
Ubuntu 开机启动脚本配置
本文基于Ubuntu 20.04 LTS版本用实例来讲解如何配置开机自启动服务。
1260 1
Ubuntu 开机启动脚本配置
|
存储 编解码 缓存
视频平台技术成本控制的量化方法
在线视频平台为用户提供服务时,面临的一个严重的挑战是,如何保证在为用户提供流畅 且稳定播放服务的前提下,尽量降低整体运营成本。本篇文章将围绕上述问题,重点讨论技术实践中的成本控制手段。
视频平台技术成本控制的量化方法
|
11月前
|
Linux Windows
IDEA如何查看所有的断点(Breakpoints)并关闭
【10月更文挑战第15天】在 IntelliJ IDEA 中,可以通过以下步骤查看和关闭所有断点: 1. 查看所有断点: - 打开断点窗口:菜单栏选择 “View” -> “Tool Windows” -> “Debug”,或使用快捷键 “Alt+2”(Windows/Linux)/“Command+2”(Mac)。 - 在断点窗口中,可以看到所有设置的断点列表,包括文件、行号等信息。 2. **关闭断点**: - 单个断点关闭:在断点窗口中,点击断点左侧的红点图标即可关闭。
4900 2
Web server failed to start. Port XXX was already in use.原因分析-解决方案
Web server failed to start. Port XXX was already in use.原因分析-解决方案
1477 1
Web server failed to start. Port XXX was already in use.原因分析-解决方案
|
监控 数据库 开发工具
使用Telegraf+Grafana监控Microsoft SQLServer数据库
使用Telegraf+Grafana监控Microsoft SQLServer数据库
323 1
|
Java Maven
maven的配置
maven的配置
932 0
|
开发框架 .NET 数据库
[笔记]Windows系统编程《九》Windows服务编程
Windows系统编程《九》Windows服务编程
540 0
[笔记]Windows系统编程《九》Windows服务编程
|
XML 存储 缓存
Shiro - Spring + Jedis(会话、缓存、自动登录)整合篇(上)
Shiro - Spring + Jedis(会话、缓存、自动登录)整合篇(上)
433 0
Shiro - Spring + Jedis(会话、缓存、自动登录)整合篇(上)
IDEA实用技巧——隐藏指定文件和文件夹~~
IDEA实用技巧——隐藏指定文件和文件夹~~
IDEA实用技巧——隐藏指定文件和文件夹~~
|
Windows
Windows系统 notepad命令详解,Windows系统打开记事本
第一步、打开cmd 按下 win 键,输入 cmd 后回车,打开「命令提示符」
1650 0
Windows系统 notepad命令详解,Windows系统打开记事本