package cn.jiu.com;
import java.util.Calendar;
import java.util.Scanner;
/*
* 一、Calendar ?
*
* 1.日历 对 Date类中的 很多方法做改进
* 2.是一个抽象类 不能建立对象---就是不能new! 需要子类实现
* 3.
* 【特殊】 不需要创建子类对象 直接使用他的静态方法 获取!-----getInstance();
*
*
* 二、主要方法? 三个 set add get
*
* 1.set 设置 年月份!
* set设置日期 格式? set(年,月,日) 中间用用逗号隔开!
*
* 2.add
* add修改日期 格式? add(Calendar. YEAR, 1 ) 年数加一! (Calendar.XXXX,num); 一个点、 一个逗号、num的正负 决定所设置年月日的加减! 年月日大写!
*
* 3.get
* get 获取年月日 格式 get(Calendar.YEAR); 中间是一个点号 . 后面接所要获取的年月日, 一次获取一个!
*
*注意! 通过 set 和 add 得到的年月日!不能直接输出 ,需要先用 get获得!------[菜鸟自己认为的]
*
*三、getInstance();?------------->在java中,可以使用这种方式使用单例模式创建类的实例!
*
* 所谓单例模式就是一个类有且只有一个实例,不像object ob=new object();的这种方式去实例化后去使用。
*
*/
public class CalendarText
{
public static void main(String[] args)
{
run();
add(); //闰年计算!
}
//Calendar 相关的方法!
public static void run(){
Calendar c1=Calendar.getInstance(); //创建对象
c1.set(2000, 2, 1); //设置年月日!
int year=c1.get(Calendar.YEAR); //获取年月日! 并输出!
int day=c1.get(Calendar.DAY_OF_MONTH);
int month=c1.get(Calendar.MONTH);
System.out.println(year+"年"+month+"月"+day+"日"); //输出获取的年月日
//显示add 修改日期方法!
c1.set(4, 2, 1); //设置2就是三月 因为在类中是0-11; 减少一天 就是2月的最后一天,闰年29,平年28天!
//但是直接输出的话会显示是1月!如果不是闰年 ,你会发现输出的是1月28!侧面证实设置2就是3月!
c1.add(Calendar. YEAR,0); //【num 的正负决定 年月日的加减!】
c1.add(Calendar. MONTH,0);
c1.add(Calendar. DAY_OF_MONTH,-1);
int year01=c1.get(Calendar.YEAR);
int day01=c1.get(Calendar.DAY_OF_MONTH);
int month01=c1.get(Calendar.MONTH);
System.out.println(year01+"年"+month01+"月"+day01+"日");
}
//利用 Calendar 日历 进行闰年的判断!
public static void add(){
Calendar c=Calendar.getInstance();
System.out.println("请输入要判断的年份,列如1995");
int year= new Scanner(System.in).nextInt();
c.set(year, 2,1); //
c.add(Calendar. DAY_OF_MONTH,-1); //
int day=c.get(Calendar.DAY_OF_MONTH);
if(day==29){
System.out.println(year+"是闰年!");
}else{
System.out.println(year+"不是闰年!");
}
}
}