zoukankan      html  css  js  c++  java
  • 算法提高 日期计算

    题目

    问题描述

      已知2011年11月11日是星期五,问YYYY年MM月DD日是星期几?注意考虑闰年的情况。尤其是逢百年不闰,逢400年闰的情况。

    输入格式

      输入只有一行
      YYYY MM DD

    输出格式

      输出只有一行
      W

    数据规模和约定

      1599 <= YYYY <= 2999
      1 <= MM <= 12
      1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期
      1 <= W <= 7,分别代表周一到周日

    样例输入

    2011 11 11

    样例输出

    5


    思路:

    原谅我懒,百度了一下,蔡勒公式。
    虽然蔡勒公式有限制吧,但对于蓝桥的系统来说嘛。。。
    嘘,我们都不说话~


    代码

    import java.util.*;
    import java.math.*;
    import java.util.regex.*;
    
    public class Main {
    
        final static int INF = 0x3f3f3f3f;
        final static int NUM = 100;
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
    
            while (sc.hasNext()) {
                int ayear=sc.nextInt();int amonth=sc.nextInt();int aday=sc.nextInt();
    
                int yy=ayear;
                int c=ayear/100;
                int y=ayear%100;
                int m=amonth;
                int d=aday;
                int w=0;
                if(m==1||m==2) {
                    c=(ayear-1)/100;
                    y=(ayear-1)%100;
                    m += 12;
                }
                w=y+y/4+c/4-2*c+(26*(m+1)/10)+d-1;
                while(w<0) w += 7;
                w%=7;
                if(w==0)System.out.println(7);
                else System.out.println(w);
            }
    
        }
    }
    
  • 相关阅读:
    Django请求的生命周期图解及流程
    Django中请求的生命周期
    127.0.0.1和0.0.0.0和本机IP的区别
    Linux中errno的含义
    wireshark 过滤表达式
    GDB调试
    【LinuxShell】grep用法详解
    Linux下 tftp 服务器的安装与使用
    设备掐断重启
    GDB disassemble
  • 原文地址:https://www.cnblogs.com/wygdove/p/4542090.html
Copyright © 2011-2022 走看看