日起计算2

//hdu 2133 what day is it
//题意:给一个日期计算是周几
//再次我采用从该日期到1年1月1日有多天,这时候y年以前比较好算,即(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400,(x/4-x/100+x/400),这样是直接计算出日期,
要是你选择跑循环计算也行,还有就是记住一些常识1年1月1日 是周一, 2000年1月1日 是周六, 0年1月1日是周六

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#include<math.h>
#include<algorithm>
using namespace std;

#define N 100;

int tab[2][13]= {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
                 {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};

char s[7][20]={{"Monday"}, {"Tuesday"},{"Wednesday"}, {"Thursday"},
 {"Friday"}, {"Saturday"}, {"Sunday"}};

int IsLeap(int n)
{
    return ((n%4==0&&n%100!=0) || n%400==0);
}

int main()
{
    int y, m, d, leap, t;

    while(scanf("%d%d%d", &y, &m, &d)!=EOF)
    {
        leap=IsLeap(y);
        if(m*d==0 || d>tab[leap][m])
        {
            printf("illegal\n");
            continue ;
        }
        t=0;
        t+=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400;
        for(int i=1; i<m; i++)
            t+=tab[leap][i];
        t+=d;
        t%=7;
        if(t==0)
            t=7;
        printf("%s\n", s[t-1]);
    }
    return 0;
}
时间: 2024-10-05 05:00:27

日起计算2的相关文章

用户输入年,月,日,计算该日是该年的第几天?需要考虑2月份的问题

1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //用户输入年,月,日,计算该日是该年的第几天?需要考虑2月份的问题 6 int year = 2015; 7 int month = 5; 8 int day = 8; 9 10 //计算是哪年 哪月 哪日 11 //1,3,5,7,8,10,12是31 12 //闰年29天,平年28天 13 //4,6,9,11是30天 14 //占时认为2月份是28天 15 16 //储

为什么编程语言以及数据库要从1970年1月1日开始计算时

今天在看Python  API时,看到time模块: The epoch is the point where the time starts. On January 1st of that year, at 0 hours,the “time since the epoch” is zero. For Unix, the epoch is 1970. To find out what the epoch is, look at gmtime(0). 定义time从1970年1月1日开始,忽然想

输入年 月 日 ,计算时该年的第几天

#include "stdio.h" void main() { /*year 年 month 月 month1 备份月数 day 日 day1 备份总体天数,day用于接收当月的天数,d1备份当月的天数. s 计算当月之前的月的总天数 sum 天数总和 */ int year,month,month1,day,day1,d1,sum=0,s=0; printf("请输入年份:"); scanf("%d",&year); fflush(s

根据输入的年、月、日,计算出该天是当年的第几天。未完成~!

#include<stdio.h> int main() { int a,b,c,d; printf("年"); scanf("%d",&a); printf("月日"); scanf("%d",&b); if (a%4!=0) { c=a; //c不是闰年 printf("MO"); } if (a%4==0&&a%100==0) { c=a; //c不是闰年

C程序设计 8.18 给出年、月、日,计算该日是该年的第几天。

相关知识点: 判断闰年一般的规律为: 四年一闰,百年不闰,四百年再闰. 其简单计算方法: 1.能被4整除而不能被100整除.(如2004年就是闰年,1800年不是.) 2.能被400整除.(如2000年是闰年) 另外, 2月:平年有28天,闰年有29天. #include <stdio.h> //leap==1是闰年,leap==0平年 int year,month,day,leap,num; int main(){ int leaper(int year); int summer(); pr

java为啥计算时间从1970年1月1日开始

http://www.myexception.cn/program/1494616.html ---------------------------------------------------------- java为什么计算时间从1970年1月1日开始 今天在看Python  API 时,看到 time 模块 : The epoch is the point where the time starts. On January 1st of that year, at 0 hours,the

软考中高项学员:2016年4月6日作业 风险管理、项目收尾管理、知识产权管理

软考中高项学员:2016年4月6日作业 风险管理.项目收尾管理.知识产权管理 一.风险管理 1.风险管理包括哪六个过程?(记) 风险规划.风险识别.定性风险分析.定量风险分析.应对计划编制.风险监控 2.什么是应急计划?请举例. 应急计划是指当一项可能的风险事件实际发生时项目团队将采取的预先确定的措施.例如当项目经理根据一个新的软件产品开发的实际进展情况,预计到该软件开发成果奖不能及时集成到正在按合同进行的信息系统项目中时,他们就会自动应急计划. 3.什么是应急储备?请举例. 应急储备是指根据项

08--MOOC--C/C++ 根据年月日计算星期几——蔡勒公式篇

C/C++ 根据年月日计算星期几——蔡勒公式篇 蔡勒公式  蔡勒(Zeller)公式:是一个计算星期的公式.随便给一个日期,就能用这个公式推算出是星期几.蔡勒公式如下:W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下:w:星期: w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六c:世纪-1(前两

c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便

—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月1日来计算):d:日:[ ]代