第四届蓝桥杯 省赛 JavaB组 世纪末的星期
2017-03-12 16:55
267 查看
曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12月31日,如果是星期一则会....
有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
于是,“谣言制造商”又修改为星期日......
1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
请回答该年份(只写这个4位整数,不要写12月31等多余信息)
答案:2299
思路:循环中先设置cal日历对象的时间为当前年数的12月31号,然后通过if语句和get()方法获取该日期是星期几。因为java日历的数组中{1,2,3,4,5,6,7}依次对应{星期日,星期一,星期二,星期三,星期四,星期五,星期六},所以如果是星期日,那么get()方法返回的数值应为1
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[]args){
Calendar cal=Calendar.getInstance();//获取当天某指定点上的时间
for(int i=1999;;i+=100){
cal.setTime(new Date(i-1900,11,31));
if(cal.get(Calendar.DAY_OF_WEEK)==1){
System.out.println(i);
break;
}
}
}
}
思路2:
本题计算xx99年12月31距当时比赛日期2000.1.1有几天。题目已知1999年的12月31日是星期五,2000.1.1距1999.12.31有一天,(5+1)%7=6,是星期六。即是计算纪元年最后一天距离2000.1.1有多少天,加5模7便知道是星期几。
public class Main {
public static void main(String[] args)
{
int year = 2000;
int total = 0;
for( ; ; year++) {
if(year%400==0 || (year%4==0 && year%100!=0)){ //闰年
total += 366;
}else {
total += 365;
}
if((total+5)%7 == 0 && (year+"").endsWith("99")){
System.out.println(year);
break;
}
}
}
}
还有人称今后的某个世纪末的12月31日,如果是星期一则会....
有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!
于是,“谣言制造商”又修改为星期日......
1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)?
请回答该年份(只写这个4位整数,不要写12月31等多余信息)
答案:2299
思路:循环中先设置cal日历对象的时间为当前年数的12月31号,然后通过if语句和get()方法获取该日期是星期几。因为java日历的数组中{1,2,3,4,5,6,7}依次对应{星期日,星期一,星期二,星期三,星期四,星期五,星期六},所以如果是星期日,那么get()方法返回的数值应为1
import java.util.Calendar;
import java.util.Date;
public class Main {
public static void main(String[]args){
Calendar cal=Calendar.getInstance();//获取当天某指定点上的时间
for(int i=1999;;i+=100){
cal.setTime(new Date(i-1900,11,31));
if(cal.get(Calendar.DAY_OF_WEEK)==1){
System.out.println(i);
break;
}
}
}
}
思路2:
本题计算xx99年12月31距当时比赛日期2000.1.1有几天。题目已知1999年的12月31日是星期五,2000.1.1距1999.12.31有一天,(5+1)%7=6,是星期六。即是计算纪元年最后一天距离2000.1.1有多少天,加5模7便知道是星期几。
public class Main {
public static void main(String[] args)
{
int year = 2000;
int total = 0;
for( ; ; year++) {
if(year%400==0 || (year%4==0 && year%100!=0)){ //闰年
total += 366;
}else {
total += 365;
}
if((total+5)%7 == 0 && (year+"").endsWith("99")){
System.out.println(year);
break;
}
}
}
}
相关文章推荐
- 第四届蓝桥杯省赛JAVAB组——世纪末的星期
- 第四届蓝桥杯JAVA本科B(世纪末的星期)
- 世纪末的星期——第四届蓝桥杯选拔赛java B组
- 2013蓝桥杯预赛java 世纪末的星期
- java 蓝桥杯 世纪末的星期
- [JAVA][2013蓝桥杯预赛 JAVA本科B组][世纪末的星期]
- 第四届蓝桥杯 世纪末的星期
- 第四届蓝桥杯A组--世纪末的星期
- 蓝桥杯-----世纪末的星期
- 振兴中华_第四届蓝桥杯选拔赛java B组
- 第四届蓝桥杯决赛题-九宫重排(双向广搜).java
- 错误票据-第四届蓝桥杯java B组
- 算法笔记_109:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科B组部分习题)试题解答
- 蓝桥杯 历届试题 世纪末的星期
- 第四届蓝桥杯省赛javaB组试题解析
- 第四届蓝桥杯 省赛 JavaB组 振兴中华
- 2013年第四届蓝桥杯试题(Java本科B组)
- 第四届蓝桥杯B组java--马虎的算式
- 黄金连分数 -第四届蓝桥杯java B组
- 第四届蓝桥杯A组java--梅森素数