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

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

#include <stdio.h>
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 (y%100==0) {if (y%400==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("\n");
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-04-19
void main( )
{
int year=2006,month=1,day=28,total,week,i;
bool leap=0;
leap = (year%400==0)| (year%100!=0) & (year%4==0);
week =1; //起始日 1979-12-31是星期一
total = year-1980+(year-1980+3)/4; //求平(闰)年累计的总天数
for (i=1;i<=month-1;i++) //当年的累计天数
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: total+=31;
break;
case 4:
case 6:
case 9:
case 11: total+=30;
break;
case 2: if (leap)
total+=29;
else
total+=28;
break;
}
total = total+day; //当月的天数
week = (week+total) % 7; //求得星期几
switch (week)
{
case 0: System.out.println("Sunday"); break;
case 1: System.out.println("Monday"); break;
case 2: System.out.println("Tuesday"); break;
case 3: System.out.println("Wednesday");break;
case 4: System.out.println("Thursday"); break;
case 5: System.out.println("Friday"); break;
case 6: System.out.println("Saturday"); break;
}
}

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,...

相似回答