Calendar方法

1.Calendar的概述和方法
2.Calendar方法
3.Calendar案例:获取任意年份二月有多少天

package cn.itcast_01;

import java.util.Calendar;

/*
 * public void add(int field,int amount)根据给定的日历字段和对应的时间,来对当前日历进行加减操作
 * public final void set(int year,int month,int date)设置当前日历的年月日
 * 
 */
public class Calendar方法 {

	public static void main(String[] args) {
	    //获取当前的日历时间
		Calendar c = Calendar.getInstance();//子类对象
		//获取年
		int year =c.get(Calendar.YEAR);
		//获取月
		int month = c.get(Calendar.MONDAY);
		//获取日
		int day = c.get(Calendar.DATE);
		System.out.println(year+"年"+month+1+"月"+day+"日");
		
		//五年前的十天后
		c.add(Calendar.YEAR, -5);
		c.add(Calendar.DATE, -10);
		//获取年
		 year =c.get(Calendar.YEAR);
		//获取月
		 month = c.get(Calendar.MONDAY);
		//获取日
	     day = c.get(Calendar.DATE);
		System.out.println(year+"年"+month+1+"月"+day+"日");
		
		
		c.set(2011,12,12);
		//获取年
		 year =c.get(Calendar.YEAR);
		//获取月
		 month = c.get(Calendar.MONDAY);
		//获取日
	     day = c.get(Calendar.DATE);
		System.out.println(year+"年"+month+1+"月"+day+"日");
	}

}

### 日期计算中的 Calendar API 使用方法Java 中,`Calendar` API 提供了丰富的日期操作能力,可以用于获取当前日期、进行日期加减运算以及判断日期归属年份等任务。 获取当前日期可以通过 `Calendar.getInstance()` 方法实现,该方法返回一个 `Calendar` 实例,表示当前时间。通过 `get` 方法可以提取年、月、日等信息,并格式化输出为 `yyyy-MM-dd HH:mm` 格式。 ```java import java.text.SimpleDateFormat; import java.util.Calendar; public class DateCalculation { public static void main(String[] args) { Calendar currentDate = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); System.out.println("当前日期: " + sdf.format(currentDate.getTime())); } } ``` 在计算当前日期加三个月后的日期时,可以使用 `add` 方法对 `Calendar` 对象的 `MONTH` 字段进行加法操作。随后,通过 `getTimeInMillis` 方法获取该日期的时间戳,并与当年的起始时间进行比较,计算出该日期是当年的第几天。 ```java Calendar futureDate = (Calendar) currentDate.clone(); futureDate.add(Calendar.MONTH, 3); Calendar yearStart = Calendar.getInstance(); yearStart.set(Calendar.YEAR, futureDate.get(Calendar.YEAR)); yearStart.set(Calendar.DAY_OF_YEAR, 1); long diffMillis = futureDate.getTimeInMillis() - yearStart.getTimeInMillis(); long dayOfYear = diffMillis / (24 * 60 * 60 * 1000) + 1; System.out.println("加三个月后的日期是 " + sdf.format(futureDate.getTime()) + ",是今年的第 " + dayOfYear + " 天"); ``` 对于当前日期减去 300 天后是否仍在本年的问题,可以通过 `add` 方法对 `Calendar` 的 `DAY_OF_MONTH` 字段进行减法操作,然后比较修改后的年份是否与原始年份相同[^2]。 ```java Calendar pastDate = (Calendar) currentDate.clone(); pastDate.add(Calendar.DAY_OF_MONTH, -300); boolean isSameYear = pastDate.get(Calendar.YEAR) == currentDate.get(Calendar.YEAR); System.out.println("减300天后的日期是 " + sdf.format(pastDate.getTime()) + ",是否仍在本年:" + (isSameYear ? "是" : "否")); ``` 上述方法利用了 `Calendar` API 的灵活性精度,确保了日期计算的准确性。通过 `Calendar` 可以避免使用 `new Date()` 或 `SimpleDateFormat` 等过时或线程不安全的方法,从而提升代码的健壮性可维护性[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Unknown To Known

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值