zoukankan      html  css  js  c++  java
  • 2013第四届蓝桥杯JavaB组省赛 第一题:世纪末的星期

    题目描述
    曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会…有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!于是,“谣言制造商”又修改为星期日…1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?请回答该年份(只写这个4位整数,不要写12月31等多余信息)

    可以使用Calendar获取当天日期,并且对年月日不断地更新,去判断获取到的世纪末是周几。

     1 package day;
     2 
     3 import java.util.Calendar;
     4 
     5 public class WeekEndCentury {
     6     public static void main(String[] args){
     7         Calendar calendar = Calendar.getInstance();
     8         for(int year = 1999 ; year <= 9999 ; year += 100){
     9             calendar.set(year,11,31);
    10             if(calendar.get(Calendar.DAY_OF_WEEK) == 1){
    11                 System.out.println(year);
    12                 break;
    13             }
    14         }
    15     }
    16 }

    Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

    Calendar类是个抽象类,在JAVA中,抽象类是不能被直接实例化的,但是这里却创建了抽象类的对象。其实,并不是Calendar类本身被实例化了,而是其子类的实例,当调用了getInstance方法之后,方法内部会实例化一个GregorianCalendar 对象并返回,这也反映了JAVA的一种设计模式——单例模式。

    受西方影响,每周第一天为周日,所以获取到的星期数等于1,则为周日,同理,月份也是一样的。

  • 相关阅读:
    [adminitrative][archlinux][setfont] 设置console的字体大小
    [daily][archlinux][rsync] rsync
    [skill][msgpack] 初试msgpack库以及基本使用
    AWS之搭建深度学习主机
    AWS之SSH登录:使用 PuTTY 从 Windows 连接到 Linux 实例
    加拿大大学排名 by USNews
    Python多进程vs多线程
    Python之JSON使用
    Python之模块与包
    Android重打包+重新签名工具Apktool Box
  • 原文地址:https://www.cnblogs.com/woju/p/14234805.html
Copyright © 2011-2022 走看看