java 日期计算

 

 

import java.util.Calendar;
 
public class Main {
    public static void main(String[] args) {
        // 创建一个Calendar对象并设置为当前时间
        Calendar calendar = Calendar.getInstance();
        
        // 获取当前年份、月份和日期
        int year = calendar.get(Calendar.YEAR);
        int month = calendar.get(Calendar.MONTH);
        int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
        
        // 将月份减去1(注意需要考虑到月份从0开始计数)
        if (month == 0) {
            // 如果当前月份已经是最小值了,则需要向上调整年份
            year--;
            month = 12;
        } else {
            month--;
        }
        
        // 重新设置Calendar对象的年份、月份和日期
        calendar.set(year, month, dayOfMonth);
        
        // 输出结果
        System.out.println("倒退1个月后的日期为:" + calendar.getTime());
    }
}

 

Java 获取某月开始和结束日期的实现
1. 整体流程
为了获取某个月份的开始日期和结束日期,我们可以按照以下步骤进行操作:

获取当前日期
根据当前日期获取所需月份的第一天
根据当前日期获取所需月份的最后一天
下面我们将详细介绍每个步骤的实现方法。

2. 获取当前日期
在Java中,我们可以使用java.util.Date类和java.util.Calendar类来获取当前日期。

 

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

public class DateUtils {
    public static Date getCurrentDate() {
        return new Date();
    }
}

 

 
上述代码中,getCurrentDate方法返回一个Date对象,表示当前日期。

3. 获取月份的第一天和最后一天
为了获取某个月份的第一天和最后一天,我们需要先获取当前日期所在月份的第一天和最后一天。

 

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

public class DateUtils {
    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();
    }
}

 

上述代码中,getFirstDayOfMonth方法返回一个Date对象,表示当前日期所在月份的第一天;getLastDayOfMonth方法返回一个Date对象,表示当前日期所在月份的最后一天。

4. 完整代码
下面是整个实现的完整代码:

  

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

public class DateUtils {
    public static Date getCurrentDate() {
        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();
        Date firstDayOfMonth = getFirstDayOfMonth(currentDate);
        Date lastDayOfMonth = getLastDayOfMonth(currentDate);
        
        System.out.println("当前日期: " + currentDate);
        System.out.println("本月第一天: " + firstDayOfMonth);
        System.out.println("本月最后一天: " + lastDayOfMonth);
    }
}

 

上述代码中的main方法演示了如何使用上述工具类来获取当前日期、当前月份的第一天和最后一天,并将结果打印输出。
-----------------------------------

package com.swift.oa;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class APP4 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String firstDay = getFirstDay(2022,12,"yyyy-MM-dd");
        String lastDay = getLastDay(2022,12,"yyyy-MM-dd");
        
        System.out.println(firstDay);
        
        System.out.println(lastDay);
        
        
    }
    
    
    /**
     * 根据年月获取月初第一天日期
     * @param year
     * @param month
     * @return
     */
    public static String getFirstDay(int year,int month,String format) {
        Calendar cale = Calendar.getInstance();
        
        
 
        cale.set(Calendar.YEAR,year);    //赋值年份
        cale.set(Calendar.MONTH, month-1);//赋值月份
        int lastDay = cale.getActualMinimum(Calendar.DAY_OF_MONTH);//获取月最大天数
        cale.set(Calendar.DAY_OF_MONTH, lastDay);//设置日历中月份的最大天数
        SimpleDateFormat sdf = new SimpleDateFormat(format);//格式化日期yyyy-MM-dd
        String lastDayOfMonth = sdf.format(cale.getTime());
        return lastDayOfMonth;
    }
    
    
    /**
     * 根据年月获取月末最后一天日期
     * @param year
     * @param month
     * @return
     */
    public static String getLastDay(int year,int month,String format) {
        Calendar cale = Calendar.getInstance();
        
        cale.set(Calendar.YEAR,year);//赋值年份
        cale.set(Calendar.MONTH, month-1);//赋值月份
        int lastDay = cale.getActualMaximum(Calendar.DAY_OF_MONTH);//获取月最大天数
        cale.set(Calendar.DAY_OF_MONTH, lastDay);//设置日历中月份的最大天数
        SimpleDateFormat sdf = new SimpleDateFormat(format);    //格式化日期yyyy-MM-dd
        String lastDayOfMonth = sdf.format(cale.getTime());
        return lastDayOfMonth;
    }

}

 

posted @ 2024-02-19 11:15  kelelipeng  阅读(61)  评论(0编辑  收藏  举报