Calendar对日期的一些操作

package calendar;

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

/**
 * @author SIMBA1949
 * @date 2021/6/2 10:33
 */
public class TestCalendar {
    public static void main(String[] args) {
        Calendar rightNow = Calendar.getInstance();
        // 年
        int year = rightNow.get(Calendar.YEAR);
        // 月
        int month = rightNow.get(Calendar.MONTH);
        // 日
        int date = rightNow.get(Calendar.DATE);
        // 小时
        int hour = rightNow.get(Calendar.HOUR);
        // 以毫秒为单位返回该日历的时间值
        long timeInMillis = rightNow.getTimeInMillis();
        // 上午下午
        int moa = rightNow.get(Calendar.AM_PM);
        if (moa == 0){
            System.out.println("上午");
        }else if (moa == 1){
            System.out.println("下午");
        }
        System.out.println(year + "年" + (month + 1) + "月" + date + "日"+hour+"时"+timeInMillis+"秒");
        /**
         * add()
         * 如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,
         * 11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作。
         * 例如:Calendar calendar = Calendar.getInstance();calendar.add(5,1);则表示对日期进行加一天操作
         */
         rightNow.add(1,1);
         int year2 = rightNow.get(Calendar.YEAR);
         System.out.println("加了一年"+year2);

        /**
         * rightNow.add(Calendar.YEAR,5)
         * 直接操作年月
         */
         rightNow.add(Calendar.YEAR,5);
         rightNow.add(Calendar.DATE, 10);
         int year1 = rightNow.get(Calendar.YEAR);
         int date1 = rightNow.get(Calendar.DATE);
         System.out.println(year1 + "年" + (month + 1) + "月" + date1 + "日"+hour+"时");

        /*获取本月的第一天*/
        Calendar calendar = Calendar.getInstance();
        calendar.get(Calendar.YEAR);
        calendar.set(Calendar.DAY_OF_MONTH,1);
        System.out.println("本月第一天"+new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));

        /*获取本月的最后一天*/
        calendar = Calendar.getInstance();
        calendar.get(Calendar.YEAR);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        System.out.println("本月最后一天"+new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));

        /*获取下个月第一天*/
        calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH,1);
        calendar.set(Calendar.DAY_OF_MONTH,1);
        System.out.println("下月第一天"+new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));

        /*获取下个月的最后一天*/
        calendar = Calendar.getInstance();
        calendar.add(Calendar.MONTH,1);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
        System.out.println("下月最后一天"+new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime()));

        /*获取一年中的每个月第一天和最后一天*/
        for (int i = 0; i < 12; i++) {
            Calendar min = Calendar.getInstance();
            // 设置月份
            min.set(Calendar.MONTH, i);
            // 获取每月最小天数
            int firstDay = min.getActualMinimum(Calendar.DAY_OF_MONTH);
            // 设置日历中月份的最小天数
            min.set(Calendar.DAY_OF_MONTH, firstDay);

            // 获取每月最大天数
            Calendar max = Calendar.getInstance();
            max.set(Calendar.MONTH,i);
            max.set(Calendar.DAY_OF_MONTH,max.getActualMaximum(Calendar.DAY_OF_MONTH));

            System.out.println(i + 1+"月第一天"+new SimpleDateFormat("yyyy-MM-dd").format(min.getTime()));
            System.out.println(i + 1+"月最后一天"+new SimpleDateFormat("yyyy-MM-dd").format(max.getTime()));
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值