原题链接
有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。 说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入 输入只有一行,即某个特定的年份(大于或等于1998年)。
输出 输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
样例输入
1998
样例输出
3
分析:对于这道题来说,如果根据 题目给的说明提示来一步一步写出来的话,会有些麻烦 Java中有提供给我们 时间日期类的方法让我们直接使用
代码示例:
import java.util.Calendar; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 输入的特定的年份 int n = sc.nextInt(); // 定义一个日历类 Calendar cal = Calendar.getInstance(); // 统计一年中出现的 13号and星期五 次数 int count = 0; // 一年中有12个月 for (int i = 0; i < 12; i++) { // 设置这个日期类的时间(年、月、日) cal.set(n, i, 13); // Calendar.DAY_OF_WEEK方法可以获取到这个日期是星期几 5是星期四、6是星期五 所以要-1 if (cal.get(Calendar.DAY_OF_WEEK) - 1 == 5) { // System.out.println("黑色星期五: "+n+"年"+i+"月13日"); count++; } } // 输出统计到的次数 System.out.println(count); } }