世纪末星期

题目描述

曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。

还有人称今后的某个世纪末的12月31日,如果是星期一则会…

有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!

于是,“谣言制造商”又修改为星期日…

1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?

请回答该年份(只写这个4位整数,不要写12月31等多余信息)

解题思路

这里用到了Java中的一个日期API——Calendar(1970年后的日期才可以使用这个API)

只需从1999年开始每次增加100年遍历,看看对应世纪末年份12月31日是否为星期日即可停止遍历。

import java.util.Calendar;

public class Main {

	public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
for (int year = 1999; year < 10000; year += 100) {
calendar.set(year, 11, 31); // 注意0是代表1月份,所以12月份应该是11
if (calendar.get(Calendar.DAY_OF_WEEK) == 1) { // 这里星期日为1,星期一为2...
System.out.println(year);
break;
}
}
} }

结果

2299

提示:题意中埋了一个坑,它说1999年的12月31日是星期五,这里我们应该验证一下实际中这天是否为星期五再去解题。

我们可以用calendar.set(1999, 11, 31);和System.out.println(calendar.get(Calendar.DAY_OF_WEEK));这两句来看看输出结果是否为6



巧解

其实这道题我们可以直接借助excel的内置函数来解决。

1、我们在A1单元格这里输入1999年12月31日

2、选中B2这个单元格,在输入框输入=WEEKDAY(A1,2)然后回车。这里第一个参数是想到得到对应星期的日期所在的单元格位置,第二个给2是为了,让1代表星期一,2代表星期二等,这样子方便看点。假如给1则1代表星期日了。

3、在A2单元格中输入2099年12月31日,然后选中A1和A2这两个单元格往下拉。这样A列就是每次增加100年的了。最后选中B1这个单元格往下拉,就能得出左边对应日期所对应的星期了。

这样就得出了2299这个答案了。

最新文章

  1. 【转载】【树形DP】【数学期望】Codeforces Round #362 (Div. 2) D.Puzzles
  2. charCode与keyCode的区别
  3. PHP 生成图片缩略图函数
  4. ionic环境搭建和安装
  5. MySQL数据库的常用操作
  6. bzoj 2241: [SDOI2011]打地鼠
  7. Windows IP安全策略。
  8. cocos2d游戏界面卡住声音正常播放的问题分析
  9. Web内容管理系统 Magnolia 安装使用-挖掘优良的架构(2)
  10. PowerShell 解锁使用浏览器下载的文件
  11. 坑爹火狐浏览器会记录表单数据,导致服务器控件点击事件出bug
  12. Javascript中call和apply
  13. Ubuntu 16.04 源码编译安装PHP7
  14. BZOJ_2502_清理雪道_有源汇上下界最小流
  15. Ajax中onreadystatechange函数不执行,是因为放在open()后
  16. 016 在大数据中,SSH无密钥登录
  17. HDU 2072 - 单词数 - [(有点小坑的)字典树模板题]
  18. go语言sync包的学习(Mutex、WaitGroup、Cond)
  19. Codeforces821C Okabe and Boxes 2017-06-28 15:24 35人阅读 评论(0) 收藏
  20. 000 关于IDEA的基本环境配置以及快速使用(git拉载程序,Jdk安装,tomcat部署,应用程序打包运行)

热门文章

  1. Mysql 常用函数(8)- concat 函数
  2. Mybatis系列二-快速开发
  3. 关于字符串函数size()的问题
  4. County Fair Events
  5. Vue与 Vue组件部分
  6. 数据结构----栈stack
  7. CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\ad888a2
  8. Spring 框架的 AOP 简介
  9. format函数格式化显示的方法
  10. python字典详细介绍