JavaSE-13.2.4【Calendar类、案例】
1 package day4.haifei02; 2 3 import java.util.Calendar; 4 5 /* 6 2.4 Calendar类 7 日历类 8 Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法 9 Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。该方法返回一个Calendar 对象。 10 其日历字段已使用当前日期和时间初始化:Calendar rightNow = Calendar.getInstance(); 11 常用方法 12 public int get(int field) 返回给定日历字段的值 13 public abstract void add(int field, int amount) 根据日历的规则,将指定的时间量添加或减去给定的日历字段 14 public final void set(int year,int month,int date) 设置当前日历的年月日 15 */ 16 public class CalendarDemo { 17 public static void main(String[] args) { 18 Calendar cal = Calendar.getInstance(); //获取日历类对象;其实质通过多态实现 19 System.out.println(cal); 20 21 int year = cal.get(Calendar.YEAR); 22 int month = cal.get(Calendar.MONTH) + 1; //注意:默认月从0开始计数 23 int day = cal.get(Calendar.DATE); 24 System.out.println(year + "年" + month + "月" + day + "日"); 25 26 //需求1:三年前的今天 27 cal.add(Calendar.YEAR, -3); 28 year = cal.get(Calendar.YEAR); 29 month = cal.get(Calendar.MONTH) + 1; 30 day = cal.get(Calendar.DATE); 31 System.out.println(year + "/" + month + "/" + day); 32 33 //需求2:十年后的五天前 34 cal.add(Calendar.YEAR, 10); 35 cal.add(Calendar.DATE, -5); 36 year = cal.get(Calendar.YEAR); 37 month = cal.get(Calendar.MONTH) + 1; 38 day = cal.get(Calendar.DATE); 39 System.out.println(year + "-" + month + "-" + day); 40 41 cal.set(1996, 9, 18); 42 year = cal.get(Calendar.YEAR); 43 month = cal.get(Calendar.MONTH); 44 day = cal.get(Calendar.DATE); 45 System.out.println(year + "." + month + "." + day); 46 } 47 }
1 package day4.haifei02; 2 3 import java.util.Calendar; 4 import java.util.Scanner; 5 6 /* 7 2.5 案例-二月天 8 需求:获取任意一年的二月有多少天 9 思路:年来自键入,月设置为3月(默认月从0开始,所以设置值为2),日设置为1日 10 3月1日往前推一天就是2月最后一天,即当年2月总天数 11 */ 12 public class CalendarTest { 13 public static void main(String[] args) { 14 Scanner sc = new Scanner(System.in); 15 System.out.println("请输入年份:"); 16 int year = sc.nextInt(); 17 18 Calendar cal = Calendar.getInstance(); 19 cal.set(year, 2, 1); //设置年月日(某年的3月1日) 20 // System.out.println(cal.get(Calendar.MONTH)); //输出2,实际为3月 21 22 cal.add(Calendar.DATE, -1); //往前推一天 23 24 int num = cal.get(Calendar.DATE); 25 System.out.println(year + "年2月有" + num + "天"); 26 } 27 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!