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

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

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版本用实例来讲解如何配置开机自启动服务。
1303 1
Ubuntu 开机启动脚本配置
|
Linux Windows
IDEA如何查看所有的断点(Breakpoints)并关闭
【10月更文挑战第15天】在 IntelliJ IDEA 中,可以通过以下步骤查看和关闭所有断点: 1. 查看所有断点: - 打开断点窗口:菜单栏选择 “View” -> “Tool Windows” -> “Debug”,或使用快捷键 “Alt+2”(Windows/Linux)/“Command+2”(Mac)。 - 在断点窗口中,可以看到所有设置的断点列表,包括文件、行号等信息。 2. **关闭断点**: - 单个断点关闭:在断点窗口中,点击断点左侧的红点图标即可关闭。
5309 2
Web server failed to start. Port XXX was already in use.原因分析-解决方案
Web server failed to start. Port XXX was already in use.原因分析-解决方案
1618 1
Web server failed to start. Port XXX was already in use.原因分析-解决方案
|
监控 数据库 开发工具
使用Telegraf+Grafana监控Microsoft SQLServer数据库
使用Telegraf+Grafana监控Microsoft SQLServer数据库
360 1
|
Java Maven
maven的配置
maven的配置
957 0
|
前端开发 JavaScript API
交互设计:隐藏或显示大段文本的UI组件有哪些?
应用场景: 在手机上要给列表中的每一项添加一个大段的介绍,应该用什么UI组件 A: 这里可以用,模态对话框,弹出提示,工具提示这类组件。模态对话框的好处,就是用关闭的按钮,用户操作方便;而弹出提示和工具提示只能通过点击来切换   模态对话框: http://v2.bootcss.com/javascript.html#modals http://www.runoob.com/bootstrap/bootstrap-modal-plugin.html Bootstrap 模态框(Modal)插件 模态框(Modal)是覆盖在父窗体上的子窗体。
1749 0
|
机器学习/深度学习 存储 人工智能
达摩院自研向量检索引擎Proxima在行业搜索中的应用
淘宝搜索推荐、视频搜索背后使用了什么样的检索技术?非结构化数据检索,向量检索,以及多模态检索,它们到底解决了什么问题?今天由阿里达摩院的科学家从业务问题出发,抽丝剥茧,深度揭秘达摩院内部技术,向量检索引擎 Proxima,以及在阿里云开放搜索产品行业模板能力的实践应用~
2487 1
达摩院自研向量检索引擎Proxima在行业搜索中的应用
|
消息中间件 Kafka Windows
Kafka Windows运行错误:找不到或无法加载主类 Files\kafka\kafka_2.12-2.0.0\libs\activation-1.1.1.ja r;C:\Program
Kafka Windows运行错误:找不到或无法加载主类 Files\kafka\kafka_2.12-2.0.0\libs\activation-1.1.1.ja r;C:\Program
801 0
Kafka Windows运行错误:找不到或无法加载主类 Files\kafka\kafka_2.12-2.0.0\libs\activation-1.1.1.ja r;C:\Program
IDEA实用技巧——隐藏指定文件和文件夹~~
IDEA实用技巧——隐藏指定文件和文件夹~~
IDEA实用技巧——隐藏指定文件和文件夹~~
|
存储 缓存 Oracle
阿里云的存储阵列了解一下
我对阿里云混合云存储阵列的了解
1448 0
阿里云的存储阵列了解一下