编写一个程序,只要输入年月日,就能回答那天是星期几。

输入一个日期,包括年、月、日。(一组测试数据)

输出这个日期是星期几。

输入:

1 1 1
2 1 1
2006 7 10
输出:
Monday
Tuesday
Monday
代码:
//====================================================
//名称:计算生日是星期几(0078)
//作者:郭成涛
//时间:2015-11-22
//简介:编写一个程序,只要输入年月日,就能回答那天是星期几。
//====================================================
#include<stdio.h>
int main()
{
int mon[]={,,,,,,,,,,,};
int y,m,d,i,sum=,j=;
scanf("%d%d%d",&y,&m,&d);
for(i=;i<y;i++)//从1年到当前年,计算总天数
{
sum=sum+;
if((i%==&&i%!=)||i%==)
{
sum++;
}
}
for(i=;i<m-;i++)//后面还要加天数,所以少算一个月
{
sum=sum+mon[i];
if(m>&&(y%==&&y%!=)||y%==)
sum++;
}
sum=sum+d; //计算天
j=sum%;
switch(j)
{
case :printf("Sunday\n");break;
case :printf("Monday\n");break;
case :printf("Tuesday\n");break;
case :printf("Wednesday\n");break;
case :printf("Thursday\n");break;
case : printf("Friday\n");break;
case : printf("Saturday\n");break;
}
return ;
}

换一种方式:

#include <stdio.h>
int main()
{
int y, m, d, i;
int year, day;
int month[] = {, , , , , , , , , , , , };
char week[][] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
while (scanf("%d %d %d", &y, &m, &d) == ){
year = ;
day = d;
while (year < y){
day += year%==||(year%==&&year%!=) ? : ;
year++;
}
if (y%==||(y%==&&y%!=)) month[] = ;
else month[] = ;
for (i=; i<m; i++)
day += month[i];
printf("%s\n", week[day%]);
}
return ;
}

计算生日是星期几-soj的更多相关文章

  1. C#根据身份证号码,计算生日、年龄、性别

    朋友谈及身份证相关的信息,才了解到原来省份证号码中包含了年龄和性别. 这样在数据库中,就不必单独留字段存放它们了(不过,要根据具体情况来,要是读取频率较高,还是单独列出为好),这样顺带解决了年龄变更的 ...

  2. python 根据生日计算年龄 sqlalchemy根据身份证号计算生日 性别

    import datetime '): birth_d = datetime.datetime.strptime(birth_s, "%Y%m%d") today_d = date ...

  3. PostgreSQL 当月最后一天的工作日 , 计算日期是星期几

    可以用pg自带函数select extract(dow from current_date),之所以没用主要是展示一下通过数学方法计算日期的原理. drop function if exists ge ...

  4. mysql 计算生日

    生日(DATE) 计算方法1: YEAR(CURDATE())-YEAR(birthday)-(RIGHT(CURDATE(),5)<RIGHT(birthday,5)) 计算方法2: year ...

  5. 如何用Python写一个每分每时每天的定时程序

    1.计算生日是星期几 当你女朋友要过生日了,你肯定要定找家饭店订个餐庆祝一下,餐馆工作日会空一些,周末位置不好定,要是能知道她的生日是星期几就好了,下面这个程序就能搞定~~ 比如girl friend ...

  6. 08--MOOC--C/C++ 根据年月日计算星期几

    计算任何一天是星期几的几种算法 一:常用公式 W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D Y是年份数,D是这一天在这一年中的累积天数,也 ...

  7. 计算xx年xx月xx日是星期几

    代码: #include <iostream> #include <string> #include <vector> using namespace std; i ...

  8. 第七届蓝桥杯javaB组真题解析-生日蜡烛(第二题)

    题目 /* 生日蜡烛 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始 ...

  9. oracle 计算时间差

    1.计算时间差(相隔星期,天数,小时,分钟,秒) SELECT TO_CHAR(date1,'MMDDYYYY:HH24:MI:SS') date1, TO_CHAR(date2,'MMDDYYYY: ...

随机推荐

  1. Java中数组的遍历

    (I)标准for循环遍历数组 例如代码片段: int [] nums = new int [] {0,1,2,3,4,5,6,7,8,9}; for(int i=0;i<11;i++){ Sys ...

  2. Servlet 笔记-过滤器

    Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息. 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet.Servlet 过滤 ...

  3. 树莓派.安装Redis环境

    先下载安装包 cd /home/pi/Downloadswget http://download.redis.io/releases/redis-4.0.1.tar.gz 解压 tar -zxf re ...

  4. Nginx监控-Nginx+Telegraf+Influxb+Grafana

    搭建了Nginx集群后,需要继续深入研究的就是日常Nginx监控. Nginx如何监控?相信百度就可以找到:nginx-status 通过Nginx-status,实时获取到Nginx监控数据后,如何 ...

  5. 五、在IDEA中使用GIt版本控制并将本地代码上传至Github

    一.安装git     Git工具下载:https://git-scm.com/downloads 从官网下载.安装很简单,基本都是下一步. 安装完的第一件事情就是创建一个Git用户: git con ...

  6. 【JavaEE】企业面试问题-Java基础

    1. Java基础部分   1.1 Java中的方法覆盖(Overwrite)和方法重载(Overloading)是什么意思? 重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的 ...

  7. 计数排序(O(n+k)的排序算法,空间换时间)

    计数排序就是利用空间换时间,时间复杂度O(n+k) n是元素个数,k是最大数的个数: 统计每个数比他小的有多少,比如比a[i]小的有x个,那么a[i]应该排在x+1的位置 代码: /* * @Auth ...

  8. 浏览器怎么解析一个hmtl文档

    注意 link里面的css文件是并行请求下载的 script里面的js文件是同步请求下载的 html页面中的语句都是从上往下执行的 浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到 def ...

  9. AngularJS学习篇(九)

    AngularJS XMLHttpRequest $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据. $http.get('someUrl',config).then(s ...

  10. Grunt打包之seajs项目【转】

    原文:http://www.cnblogs.com/accordion/p/4508154.html grunt与seajs grunt是前端流行的自定义任务的脚手架工具,我们可以使用grunt来为我 ...