输入年、月、日计算是星期几



/*************************************************************************

该程序功能:

1.输入年、月、日判断这天是星期几

2.打印出其中的闰年

3.计算从1600到输入时间,总共的天数

说明:

输入的年份必须大于1600

**************************************************************************/

#include <stdio.h>

/* 计算某一天是这年中的第几天 */

int calculate_days(int year,int month,int day)

{

int cnt;

int leapYear = 0;

if((month > 12 || month < 0) || (day > 31 || day < 0))

{

printf("input month or day error,please input correct data\n");

return -1;

}

/* 判断是否为闰年 */

if((year%4==0&&year%100!=0)||year%400==0)

{

leapYear = 1;

}

switch(month)

{

case 1:

cnt = day;

break;

case 2:

cnt = 31 + day;

break;

case 3:

if(leapYear)

{

cnt = 31 + 29 + day;

}

else

{

cnt = 31 + 28 + day;

}

break;

case 4:

cnt = 31 + 28 + 31 + day;

break;

case 5:

cnt = 31 + 28 + 31 + 30 + day;

break;

case 6:

cnt = 31 + 28 + 31 + 30 + 31 + day;

break;

case 7:

cnt = 31 + 28 + 31 + 30 + 31 + 30 + day;

break;

case 8:

cnt = 31 + 28 + 31 + 30 + 31 + 30 + 31 + day;

break;

case 9:

cnt = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + day;

break;

case 10:

cnt = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + day;

break;

case 11:

cnt = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + day;

break;

case 12:

cnt = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + day;

break;

default :

printf("input month error!!\n");

break;

}

printf("The day is %dth days for this year\n",cnt);

return cnt;

}

/* 计算从1600年1月1日到输入的日期总共的天数 */

int total_day(int year,int month,int day)

{

int i = 0;

int sumDays = 0;

if(year<1600)

{

printf("Does not support the query is less than 1600 years\n");

printf("please input more than 1600 years\n");

return -1;

}

for(i=1600;i<year;i++)

{

if((i%4==0&&i%100!=0)||i%400==0)

{

sumDays += 366;

printf("leapyear=%d\n",i);

}

else

{

sumDays += 365;

}

}

sumDays += calculate_days(year,month,day);

printf("sumDays=%d\n",sumDays);

return sumDays;

}

int main(int argc,char *argv[])

{

int totalDays = 0;

int remind = 0;

int result = 0;

int year = 0;

int month = 0;

int day = 0;

printf("please year-month-day data\n");

scanf("%d-%d-%d",&year,&month,&day);

totalDays = total_day(year,month,day);

if(totalDays<0)

{

printf("total_day error!\n");

return -1;

}

remind = totalDays % 7;

result = ((remind - 1) + 6)% 7;

switch(result)

{

case 0:

printf("This day is Sunday\n");

break;

case 1:

printf("This day is Monday\n");

break;

case 2:

printf("This day is Tuesday\n");

break;

case 3:

printf("This day is Wednesday\n");

break;

case 4:

printf("This day is Thursday\n");

break;

case 5:

printf("This day is Friday\n");

break;

case 6:

printf("This day is Saturday\n");

break;

default:

break;

}

return 0;

}

时间: 2024-10-25 20:34:12

输入年、月、日计算是星期几的相关文章

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

#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 getWeek(int year, int month, int day){ int aWeek[12] = {0,3,2,5,0,3,5,1,4,6,2,4}; int week = 0; int temp = 0; if(year < 1 || month

输入年份和天数计算出几月几号

//转换函数如下,其中通过指针同时向主函数传回月份和天数 void month_day(int year, int yearday, int *month, int *day){ //k月份,leap判断是否闰年(0非闰年1闰年) int k, leap; 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

Win10显示时间月日、星期

WIN10默认和其他系统一样只显示时间,虽然用其他方法看到月日和星期,但不如直接显示直观. 在桌面-开始--排序中找到S开头里的Setting(设置) 点击"Personalization" 点击"Taskbar"(任务栏)--将"Use small taskbar buttons"(使用小的任务栏)开关关闭,小任务栏不管怎么设置都不会显示的,因为显示空间太小. 开始-控制面板 change date,time or number formats

php计算两个日期相差 年 月 日

在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等.在文章中,简单地举例介绍了PHP中如何计算两个日期相差 年.月.日. 转自: http://www.php1.cn/Content/php_JiSuanLiangGeRiQiXiangChaNianYueRi.html /**   +----------------------------------------------------------

日期计算----某月第x个星期x(CCF试题)//c++

//将问题拆解了一下,先求每个月是星期几,再进行接下来的运算,可以一步到位的 1 #include<iostream> 2 using namespace std; 3 //**********节日计算************* 4 //计算y1年的a月第一天是星期几 5 int month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; 6 int day(int y1,int a){ 7 int y3=0; 8 int c1=2; 9 for(int

C# 根据年、月、周、星期获得日期等

原文:C# 根据年.月.周.星期获得日期等 [参考] http://blog.csdn.net/livening/article/details/6049341 http://zhidao.baidu.com/question/378600365.html http://www.cnblogs.com/roy117/archive/2008/03/25/1121584.html 楼上几层的代码都太多了,不用那么复杂. 先跟你说一下原理: 1.国际上的WeekDay是从周日到周六的顺序 2.再说C

ASP.NET 日期 时间 年 月 日 时 分 秒 格式及转换

在平时编码中,经常要把日期转换成各种各样的形式输出或保持,今天专门做了个测试,发现DateTime的ToString()方法居然有这么多的表现形式,和大家一起分享. DateTime time=DateTime.Now;   //2010-5-28  11:22:02.4552691 星期五               ime.To("y")                         "2010年5月"               time.To("

编程题:用函数实现,用户输入年月日,来计算出该日期为当年第几天?

#include<stdio.h> /*函数is_leap_year()的返回值是判断该年是否闰年*/ int is_leap_year(int year) { int leap; if(year%4==0&&year%100!=0||year%400==0) leap=1; else leap=0; return leap; } /*函数len_of_month()的返回值为某年year的某月month的天数*/ int len_of_month(int year,int m