C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是星期几并输出。

如题所述

第1个回答  2022-11-16

用蔡勒公式即可:

#include <stdio.h>

int main ()

{

int y, m, d, c, w;

printf ("输入年 月 日(空格间隔):");

scanf ("%d %d %d", &y, &m, &d);

if (m ==1 || m == 2) 

{ //判断月份是否为1或2y--;m += 12;}

c = y / 100;

y = y - c * 100;

w = (c / 4) - 2 * c + (y + y / 4) + (13 * (m + 1) / 5) + d - 1;

while (w < 0) w += 7;

w %= 7;

if (w == 0) printf ("星期日");

else printf ("星期%d", w);

return 0;

方法二:

#include 

void main ()

{

int y,m,d,c,s,w;

printf("请输入8位年月日,以空格隔开:");

scanf("%d%d%d",&y,&m,&d);

if (m==1) c=d;

else if (m==2) c=31 d;

else if (m==3) c=31 28 d;

else if (m==4) c=31 28 31 d;

else if (m==5) c=31 28 31 30 d;

else if (m==6) c=31 28 31 30 31 d;

else if (m==7) c=31 28 31 30 31 30 d;

else if (m==8) c=31 28 31 30 31 30 31 d;

else if (m==9) c=31 28 31 30 31 30 31 31 d;

else if (m==10) c=31 28 31 30 31 30 31 31 30 d;

else if (m==11) c=31 28 31 30 31 30 31 31 30 31 d;

else if (m==12) c=31 28 31 30 31 30 31 31 30 31 30 d;

if (m>2)

{if (y0==0) {if (y@0==0) c=c 1;}

else if (y%4==0) c=c 1;}

s=(y-1)*365 (y-1)/4-(y-1)/100 (y-1)/400 c;

w=s%7;

switch (w)

{

case 0: printf("星期日");break;

case 1: printf("星期一");break;

case 2: printf("星期二");break;

case 3: printf("星期三");break;

case 4: printf("星期四");break;

case 5: printf("星期五");break;

case 6: printf("星期六");break;

printf("
");

}

}

扩展资料:

C语言日期函数,日期处理函数:

定义一个表示日期的结构体类型,再分别定义函数完成下列功能:计算某一天是对应年的第几天,这一年一共多少天;计算两个日期之间相隔的天数。两个日期由键盘输入。

算法思想:

设定结构体类型表示日期类型名为 Date,利用 typedef 将其定义为日期型类型名,有三个整型类型的成员分别表示年、月、日。

设定函数计算输入的日期是这一年的第几天。函数的形参为日期型变量,函数体中设定整型数组存放每个月的天数,二月份的天数为 28 天。

设定函数判断年份是否为闰年以决定二月份的天数。根据输入的日期月份,在数组中将相应的月份天数求和,假日曰期即为天数。

设定函数完成两个日期的比较,比较形参 d 和 s 两个日期的大小。首先比较年,同年的比较月,同月的比较日。变量 start 保存输入的小的日期年份,end 保存输入日期大的年份,然后计算两个日期之间的天数。

程序由 6 个函数构成,yearday() 函数计算某年的天数,monthday() 函数计算某年二月份的天数,dayofyeaK() 函数计算某日期是某年的第几天。

cmpdate() 函数比较两个日期的大小,interday() 函数计算两个日期之间的天数。

dayofyear() 函数调用 monthday() 函数,interday() 函数调用 cmpdate() 函数。

yearday() 函数、dayofyear() 函数;主函数调用 yearday() 函数、dayofyear() 函数、interday() 函数。

C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是...
int main (){ int y, m, d, c, w;printf ("输入年 月 日(空格间隔):");scanf ("%d %d %d", &y, &m, &d);if (m ==1 || m == 2) { \/\/判断月份是否为1或2 y--;m += 12;} c = y \/ 100;y = y - c * 100;w = (c \/ 4) - 2 * c + (y + y \/...

C语言编程序实现如下功能:输入任意一个日期的年、月、日的值,求出是...
int y,m,d,c,s,w;printf("请输入8位年月日,以空格隔开:");scanf("%d%d%d",&y,&m,&d);if (m==1) c=d;else if (m==2) c=31+d;else if (m==3) c=31+28+d;else if (m==4) c=31+28+31+d;else if (m==5) c=31+28+31+30+d;else if (m==6) c=31+28...

C语言程序,输入年月日算出当天星期几
先做一个函数,计算1900年1月1日到该天的天数,然后用膜除求出星期几并输出。具体代码如下:include <stdio.h>#include <stdlib.h>int Day(int y,int m,int d);int main(int argc, char *argv[]) {int i; \/\/循环变量int year,month,day; \/\/读取用户输入的年月日int days; \/\/储...

C语言程序,输入年月日算出当天星期几
int main(){ int day,mn,yr,i,days=0,s,k;int mont[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};char wek[][9]={ {'S','u','n','d','a','y'},{'M','o','n','d','a','y'},{'T','u','e','s','d','a','y'},{'W','e','d','n','s...

c语言程序设计:任意给出一个年月日,求出是星期几.不能用数组,只能用if...
day += (y - 1)\/4;day -= (y - 1)\/100;day += (y - 1)\/400;if(m > 1) day+= 31;if(m > 2){ day += 28;if(y % 4 == 0) day ++;if(y % 100 == 0) day --;if(y % 400 == 0) day ++;} if(m > 3) day += 31;if(m > 4) day += 30;if(m...

C语言编程
\/*编程序实现如下功能:输入任意一个年份,求出从公元1年1月1日到这一年每个月的1日总共有多少天,并求出这一年每个月的1日是星期几,再按以下格式输出该年份全年的公历日历。要求用循环控制打印。打印样例如下:9月 --- 日 一 二 三 四 五 六 1 2 3 4 5 ...

C语言程序,输入年月日算出当天星期几?
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 < 1 || month > 12 || day < 1 || day > 31){ return 0;} year -= month < 3;temp = (year + year\/4 - year\/100 + year\/400 + aWeek[month-1] + day...

用c语言编写一程序,用户输入日期,计算该日是今年的第几天
;break;} sum=sum+day;\/*再加上某天的天数*\/ if(year%400==0||(year%4==0&&year%100!=0))\/*判断是不是闰年*\/ { leap=1;} else { leap=0;} if(leap==1&&month>2)\/*如果是闰年且月份大于2,总天数应该加一天*\/ { sum++;} printf("Itisthe%dthday.\\n",sum);return0;} ...

C语言 输入年月日, 计算这一天是当年的第几周.
,&y,&m,&d); a[2]+=y%4==0&&y%100||y%400==0;\/\/若是闰年,2月有29天 if(y<1||m<1||m>12||d<1||d>a[m]) { printf("date is error.\\n"); return 0; } for(d1=d,i=1; i<m; i++)d1+=a[i]; b=y+(y-1)\/4-(y-1)\/100+(y-1)...

c语言输入年月日,算第几天?
日期比较容易算。星期几可以用下面的公式来计算:(年份-1) + (年份-1)\/4 - (年份-1)\/100 + (年份-1)\/400 +第几天 建立两个数组,一个是每月天数的数组,一个是星期几的数组。程序如下:include <stdio.h>void main(){int i,n=0,year,month,day,a[13]={0,31,28,31,30,31,30,...

相似回答
大家正在搜