以日期方式判断闰年

607 阅读1分钟
package Date1216;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 编写程序,(Scanner)当以年-月-日的格式输入一个日期时,
 * 输出其该年是否为闰年,该月有几天,该日是星期几
 * @author Administrator
 *
 */
public class RIqi {
    public static void main(String[] args) throws ParseException {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入日期(yyyy-MM-dd)");
        String str=sc.next();
        sc.close();
        GregorianCalendar gc=new GregorianCalendar();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        gc.setTime(sdf.parse(str));//设置指定时间日历
        if(gc.isLeapYear(gc.get(Calendar.YEAR))){//判断指定日历所在年份是否为闰年
            System.out.println(gc.get(Calendar.YEAR)+"年是闰年");
        }else{
            System.out.println(gc.get(Calendar.YEAR)+"年不是闰年");
        }

        int t=gc.getActualMaximum(Calendar.DAY_OF_MONTH);//获取当前日历中日期所在月份的最大天数
        System.out.println("该月天数为:"+t);
        int w=gc.get(Calendar.DAY_OF_WEEK)-1;//默认每周日为第一天,故要-1
        String i=(w==0)? "星期日":"星期"+w;//三目运算解觉第一天为星期0的特殊情况
        System.out.println("改日是:"+i);
    }

}