世纪末的星期方法一:暴力求解计算从2000年到9999年每年的最后一天是星期几只要满足是世纪末年且正好这天是星期天就打印输出并结束循环。publicclass 世纪末的星期 方法一 : 暴力求解
世纪末的星期
方法一 : 暴力求解
计算从 2000 年 到 9999 年每年的最后一天是星期几只要满足是世纪末年且正好这天是星期天就打印输出并结束循环。
public class Main {public static void main(String[] args) {int week 5;for (int year 2000; year < 10000; year) {int days 365;if((year%4 0 0) || year %400 0) {days 366;}week (week days)%7;if (year % 100 99 0) {System.out.println(year);break;}}}}
方法二 利用Java 日历类
java.util.Calendar日历类 是一个 抽象类常用的方法和字段如下
字段值含义YEAR年MONTH月 从0开始DATE日DAY_OF_WEEK星期几如果是星期日返回1星期六返回7 方法含义public static Calendar getInstance()该方法返回 Calendar 类的子类public int get(int field)参数传递指定的日历字段YEAR、MONTH…)返回给定日历字段的值public void set(int field, int value) 将指定的日历字段设置为指定的值public final void set(int year, int month, int date)同时将年月日设为指定值abstract public void add(int field, int amount)根据日历规则为指定的日历字段添加或减去指定的时间量- 可以遍历从1999年开始的每个世纪末利用Calendar类的方法找出符合题意的年份。
import java.util.Calendar;import java.util.Scanner;public class Main {public static void main(String[] args) {Calendar calendar Calendar.getInstance();for (int year 1999; year < 10000; year100) {calendar.set(Calendar.YEAR, year);calendar.set(Calendar.MONTH, 11);calendar.set(Calendar.DATE,31);if (calendar.get(Calendar.DAY_OF_WEEK) 1) {System.out.println(year);break;}}}}