日期计算
来源:互联网 发布:sql.executequery 编辑:程序博客网 时间:2024/06/07 05:03
问题描述
已知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
代码不完美,OJ过了91%的测试点
#include <stdio.h>#include <stdlib.h>int s1[12]={31,28,31,30,31,30,31,31,30,31,30,31};int s2[12]={31,29,31,30,31,30,31,31,30,31,30,31};int w1[7]={6,7,1,2,3,4,5};int w2[7]={4,3,2,1,7,6,5};int isR(int a){ if(a%100==0){ if(a%400==0) return 1; } if(a%4==0) return 1; return 0;}int count(int a,int b,int c){ int i; int sum=0; for(i=1599;i<a;i++){ if(isR(i)) sum+=366; else sum+=365;}if(isR(a)){ for(i=1;i<b;i++){ sum+=s2[i-1]; } sum+=c;}else{ for(i=1;i<b;i++){ sum+=s1[i-1]; } sum+=c;}return sum;}int week(int a,int b,int c){ int t1,t2,m; t1=count(2011,11,11); t2=count(a,b,c); if(t2>t1){ m=((t2-t1)+6)%7; return w1[m]; } else { m=((t1-t2)+6)%7; return w2[m];}}int main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);printf("%d",week(a,b,c)); // printf("Hello world!\n"); return 0;}
1 0
- 日期计算
- 计算日期
- 日期计算
- 日期计算
- 日期计算
- 日期计算
- 日期计算
- 计算日期
- 日期计算
- 日期计算
- 日期计算
- 计算日期
- 日期计算
- 日期计算
- 日期计算
- 日期计算
- 日期计算
- 日期计算
- python实现tun/tap虚拟设备
- Android状态栏透明方法,与工具栏颜色一致
- React Native 的第一个Android 项目
- Tour UVA
- 日期计算
- 日期计算
- 网页中导入特殊字体@font-face属性详解
- 1010. 一元多项式求导 (25)
- 第二次作业
- Mac OS X 10.12.3安装TensorFlow
- 获取当前节点位于父节点的位置
- 3、TensorFlow实现Softmax回归识别手写数字
- 用记事本手写一个.jsp文件,然后在网页中打开中文显示乱码的解决方案
- java中遍历Map的三种方法