精华内容
下载资源
问答
  • 蓝桥杯-世纪末星期Java Calendar的使用)
    2019-03-23 08:40:00
    import java.util.*;
    public class Main {
    	
    	public static void main(String[] args){
    		Scanner  scanner = new Scanner(System.in);
    		Calendar calendar = Calendar.getInstance();
    		for(int i=1999;i<=10000;i+=100){
    			calendar.set(Calendar.YEAR, i);
    			calendar.set(Calendar.MONTH,11);
    			calendar.set(Calendar.DATE,31);
    			int t =calendar.get(Calendar.DAY_OF_WEEK);
    			if(t==1){
    				System.out.println(i);
    				break;
    			}
    			
    		}
    		
    	}
    
    }
    
    
    更多相关内容
  • 1 T1 世纪末星期 2 方法一:运用API文档中Calendar类[1] 3 方法二:基姆拉尔森计算公式 ​

    T1 世纪末的星期

    曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会....有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日......

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

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

    【思路】

      方法一:运用API文档中Calendar类[1] 

    public class 世纪末的星期 {
    
    	public static void main(String[] args) throws ParseException {
    		Calendar calendar = Calendar.getInstance();  //获取子类对象
    		for(int i=1999;i<10000;i+=100) {
    			calendar.set(i, 11, 31);   //该处写的一定是11,因为(0~11)对应(1月~12月)
    			if((calendar.get(calendar.DAY_OF_WEEK)==1)) { //(0,1,2,3,4,5,6)对应(星期六,日,一,二,三,四,五)
    				System.out.println(i);
    				break;
    			}
    		}	
    	}
    }
    

      方法二:基姆拉尔森计算公式

    y:年 m:月 d:日 w:星期几 
    w= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 
    
    注意:
    1.w的取值范围是0,1,2,3,4,5,6,分别代表星期日,星期一,星期二,星期三,星期四,星期五,星期六。
    2.今年的1、2月要换成去年的13、14月	
    	eg:2020-1-1则换算成2019-13-1来代入公式计算。
    3.这个公式可以直接计算出那个日期是星期几,但请注意!这类问题如果假设和真实情况不符的时候要记得换上偏移量,比
    public class Main {
    	public static void main(String[] args) {
    		int y = 1999;
    		int m = 12;
    		int d = 31;
    		int w;
    		for(;y<10000;y+=100) {
    			 w = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7;
    			 if(w==0) {
    				 System.out.println(y);
    				 break;
    			 }
    		}
    	}
    }

     【扩展】

      java.util.Calendar 是日历类。

      在Date后出现,替换掉了许多Date的方法。该类将所有可能   用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。   Calendar类无法直接创建对象使用,里边有一个静态方法getInstance(),该方法返回了   Calendar类的子类对象

    1  获取方式

        Calendar为抽象类,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,如下:

    Calendar cal = Calendar.getInstance();
    
    /*Calendar静态方法
    public static Calendar getInstance() :使用默认时区和语言环境获得一个日历 */

    2  常用方法 

    public class 世纪末的星期 {
    
    	public static void main(String[] args) throws ParseException {
    		Calendar calendar = Calendar.getInstance();  //获取子类对象
    		System.out.println("今天时间是:"+calendar.getTime());
    		System.out.println("今天时间是:"+new Date());
    		
    		System.out.println("今年年份是:"+calendar.get(calendar.YEAR)+"年");
    		System.out.println("今天月份是:"+(calendar.get(calendar.MARCH)+1)+"月");
    		System.out.println("今天是几号:"+calendar.get(calendar.DAY_OF_MONTH));
    		System.out.println("今天是几号:"+calendar.get(calendar.DATE)+"日");
    		System.out.println("今天是星期:"+(calendar.get(calendar.DAY_OF_WEEK)-1));//注意:获取星期几(六-五)-(0-6)
    		System.out.println("今天是本月的第几周::"+calendar.get( calendar.DAY_OF_WEEK_IN_MONTH));
        	System.out.println("今天是这一年中的第几天:"+calendar.get(calendar.DAY_OF_YEAR));
    		System.out.println("现在几点:"+calendar.get(calendar.HOUR));  //12小时值
    		System.out.println("现在几点:"+calendar.get(calendar.HOUR_OF_DAY)); //24小时
    		System.out.println("现在几分:"+calendar.get(calendar.MINUTE));
    		System.out.println("现在几秒:"+calendar.get(calendar.SECOND));
    		System.out.println("现在几毫秒:"+calendar.get(calendar.MILLISECOND));
    		
    		calendar.set(1999, 11, 31);
    		System.out.println("指定的时间是:"+calendar.getTime());
    		System.out.println("指定的时间是星期几:"+(calendar.get(calendar.DAY_OF_WEEK)-1));
    		
    		System.out.println("今天时间是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(new Date()));
    		System.out.println("今天时间是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS").format(calendar.getTime()));
    		
    		//String 转 Date
    		SimpleDateFormat sdf = new SimpleDateFormat();
    		sdf.applyPattern("yyyy-MM-dd HH:mm:ss SSS");
    		Date d = sdf.parse("2018-08-08 08:08:08 888");
    		System.out.println("今天时间是:"+d);
    		
    		calendar.setTime(d);
    		System.out.println("指定的时间是:"+calendar.getTime());
    	}
    }
    

    3 注意事项   

    西方星期的开始为周日,中国为周一。
    
    在Calendar类中,月份的表示是以0-11代表1-2月。
    
    日期是有大小关系的,时间靠后,时间越大。

    算法   基姆拉尔森计算公式外文名是Kim larsen calculation formula。

    本公式用来计算指定的年月日是星期几

    算法如下:

    基姆拉尔森计算公式 [1]  (C++与VB.Net整数除法和取余运算符不同)

    W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 //C++计算公式

    W = (D + 2 * M + 3 * (M + 1) \ 5 + Y + Y \ 4 - Y \ 100 + Y \ 400+1) Mod 7 'VB.Net计算公式

    在公式中d表示日期中的日数,m表示月份数,y表示年数。

    w表示星期,w的取值范围是0~6,0代表星期日,1~6星期一到星期六。

    注意:在公式中有个与其他公式不同的地方:

    把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

    //y-年,m-月,d-日期
    string CaculateWeekDay(int y,int m, int d)
    {
        if(m==1||m==2) {
            m+=12;
            y--;
        }
        int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7;
        string weekstr="";
        switch(week)
        {
            case 1: weekstr="星期一";
            break;
            case 2: weekstr="星期二";
            break;
            case 3: weekstr="星期三";
            break;
            case 4: weekstr="星期四";
            break;
            case 5: weekstr="星期五";
            break;
            case 6: weekstr="星期六";
            break;
            case 0: weekstr="星期日";
            break;
        }
        return weekstr;
    }

    展开全文
  • java实现第四届蓝桥杯世纪末星期

    万次阅读 多人点赞 2019-07-29 16:45:00
    世纪末星期 题目描述 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会… 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是...
    世纪末星期

    题目描述
    曾有邪教称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这个答案了。

    展开全文
  • 题目: 曾有邪教称1999年12月31日是世界末日。...1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位...

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

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

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

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

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

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

    分析:这是一道填空题,在java中有日期的api,因此如果起始日期大于1700年并且星期能够对应上的话,就能使用api直接计算;

    代码:

    package Test;
    
    
    
    import java.util.Calendar;
    import java.util.Scanner;
    
    
    public class test {
    
    	public static void main(String[] args) {
    		Calendar c = Calendar.getInstance();
    	for (int year = 2099; year < 100000; year+=100) {
    		
    		c.set(Calendar.YEAR,year);
    		c.set(Calendar.MONTH,11);
    		c.set(Calendar.DAY_OF_MONTH, 31);
    		int i = c.get(Calendar.DAY_OF_WEEK);
    		if(i==1){
    			System.out.println(year);
    			break;
    		}
    	}
    	}
    	}
    

    输出答案是:2299

    思考:如果不能用api,或者所给的信息不是真实的,那么应该如何推算。

    展开全文
  • 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日...... 1999年的12月31日是星期五,请问: 未来...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 具体代码: package easy; import java.util.Calendar; public class Number_n { ...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) import java.util.Calendar; ...
  • 世纪末星期 题目: 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! ...
  • 201301_世纪末星期 Java (蓝桥杯2013真题1) 一.题目:世纪末星期 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会… 有趣的是,任何一...
  • java世纪末星期

    2019-12-07 13:22:45
    还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,“谣言制造商”又修改为星期日...... 1999年的12月31日是星期五,请问:未来...
  • 于是,“谣言制造商”又修改为星期日…1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) 2、代码实现 import java....
  • 蓝桥世纪末星期 JAVA暴解

    千次阅读 2020-02-28 09:10:02
    曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。...1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该...
  • * 第一题:世纪末星期 * 题目描述 * 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 * 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... * 有趣的是,任何一个世纪末的年份的12月...
  • calendar.get(Calendar.DAY_OF_WEEK)==1 这里需要注意, calendar中的月份是从0开始,所以设置11表示12月 calendar中的星期是从周日开始往后推,所以1代表星期天,2代表星期二 Calendar类是一个抽象类,可以为在某...
  • 2013年—蓝桥杯Java-B组-世纪末星期 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不...
  • 世纪末星期 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是,...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) Input 没有输入。 Output 见...
  • 题目描述 曾有邪教称1999年12月31日是世界末日。...1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) 掌握Calendar这个类的set...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) 思路过程 1.
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) weekday() 不得不说,Python...
  • 1.标题: 世纪末星期 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会.... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!!  ...
  • 1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) 解题思路 方法一:运用API文...
  • 世纪末星期练习

    2021-02-08 19:37:28
    1999年的12月31日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即xx99年)的12月31日正好是星期天(即星期日)? 请回答该年份(只写这个4位整数,不要写12月31等多余信息) 题目解析: import java.util....
  • 世纪末星期

    2022-01-12 15:53:31
    世纪末星期 注意:1970前不可以使用Java中的日期API(calendar) 这道题可以直接用excel或者电脑自带日历直接看,下图是代码解题 MONTH后限制数为11是因为月份从0开始计数 这里星期天下标为一 运行结果 ...
  • java-A-1世纪末星期

    2022-04-03 08:06:07
    世纪末星期 方法一 : 暴力求解 计算从 2000 年 到 9999 年每年的最后一天是星期几,只要满足是世纪末年且正好这天是星期天就打印输出并结束循环。 public class Main { public static void main(String[] args) {...
  • 标题:世纪末星期 曾有邪教称1999年的12月31日是世界末日,当然该谣言已经不攻自破, 还有人称今后的某个世纪末的12月31日,如果是星期一则会... 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!...
  • 世纪末星期   曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。   还有人称今后的某个世纪末的12月31日,如果是星期一则会....   有趣的是,任何一个世纪末的年份的12月31日都不可能是星期...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 723
精华内容 289
关键字:

世纪末的星期java

java 订阅