原题中给的数据貌似有问题吧,星期一怎么是36天?- package cn.itheima.two;
- import java.util.Calendar;
- import java.util.Scanner;
- /**
- * 用Calendar类来做貌似挺简单的吧。。。
- */
- public class Test13 {
- public static void main(String[] args) {
- System.out.println("请输入一个不大于400的非负数:");
- Scanner in = new Scanner(System.in);
- int num = in.nextInt();
- if (num < 0 || num > 400) {
- System.out.println("请输入正确的数字");
- } else {
- test2(num);
- }
- }
- public static void test2(int n) {
- //在日历中,第1天是星期日,第2天到第7天依次为星期一到星期六
- String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", };
- // 创建一个Calendar对象
- Calendar cal = Calendar.getInstance();
- // 定义一个数组来存放星期一天到星期天的次数
- int[] counts = new int[7];
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < 12; j++) {
- // 设定日期
- cal.set(1900 + i, j, 13);
- // 获取这一天是一周的第多少天
- int count = cal.get(Calendar.DAY_OF_WEEK);
- // 判断是星期几并把天数加1
- String str = weeks[count];
- if (str.equals("星期日")) {
- counts[6]++;
- } else if (str.equals("星期一")) {
- counts[0]++;
- } else if (str.equals("星期二")) {
- counts[1]++;
- } else if (str.equals("星期三")) {
- counts[2]++;
- } else if (str.equals("星期四")) {
- counts[3]++;
- } else if (str.equals("星期五")) {
- counts[4]++;
- } else if (str.equals("星期六")) {
- counts[5]++;
- }
- }
- }
- System.out.println("星期一:" + counts[0] + ",星期二:" + counts[1] + ",星期三:"
- + counts[2] + ",星期四:" + counts[3] + ",星期五:" + counts[4]
- + ",星期六:" + counts[5] + ",星期日:" + counts[6]);
- }
- }
复制代码 |