QQ网名大全

万年历查询程序用c语言编写

网上找的部分带我,我又修改了一下,现在基本满足lz的要求。
手头没有wintc用vc测的,不过没用到什么vc特有的东西,应该可以的。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

void dayofweek()
{
int r**ay;
int y,m,d;
char ch;
while (1)
{
printf("请输入年月日(xxxx,xx,xx): ");
scanf("%d,%d,%d", &y, &m, &d);
fflush(stdin);
r**ay = (3*y-(7*(y+(m+9)/12))/4+(23*m)/9+d+17-((y+(m<3?-1:0))/100+1)*3/4) % 7;
printf("%04d年%02d月%02d日 是 星期%d\n", y, m, d, r**ay?r**ay:7);
printf("继续查询(y/n)");
ch = getchar();
if(ch != 'y' && ch != 'y')
break;
}
}

void getmonth(int d, int md, int n)
{
int n ,m,d,y,c,wd;
int i,maxday,i1;

if(md>=13||md<=0)
printf("h**e wrong!");
else
{
for(i1=0;;md++,i1++)
{
if(md==0)
{
md=12;
d-=1;
}
else
if(md==13)
{
md=1;
d+=1;
}
m=md;
printf("\n============%d,%2d============\n",d,md);
if(0<m&&m<=12)
{
switch(m)
{
case 1:maxday=31;break;
case 2:if(d%4==0&&d%100!=0||d%400==0)
maxday=29;
else
maxday=28;
break;
case 3:maxday=31;break;
case 4:maxday=30;break;
case 5:maxday=31;break;
case 6:maxday=30;break;
case 7:maxday=31;break;
case 8:maxday=31;break;
case 9:maxday=30;break;
case 10:maxday=31;break;
case 11:maxday=30;break;
case 12:maxday=31;break;
default:printf("h**e wrong");
}
if(0<m&&m<=2)
{
n=d-1;
m=m+10;
}
else
{
n=d;
m=m-2;
}
c=n/100;
y=n%100;
wd=((1+(13*m-1)/5+y+y/4+c/4-2*c)%7+7)%7;
printf(" sun mou tue wed tur fri sat\n");
for(i=0;i<wd;i++)
printf("%4c",' ');
for(d=1;d<=maxday;d++)
{
printf("%4d",d);
wd=(wd+1)%7;
if(wd==0)
printf("\n");
}
}
else
printf("h**e wrong!");
if(i1==n)
break;
}
}
}

void monthofyear()
{
char ch;
int y, m;
while (1)
{
printf("请输入年月(xxxx,xx): ");
scanf("%d,%d", &y, &m);
fflush(stdin);
getmonth(y, m, 0);
printf("\n继续查询(y/n)");
ch = getchar();
if(ch != 'y' && ch != 'y')
break;
}
}

void getyear()
{
char ch;
int y;
while (1)
{
printf("请输入年: ");
scanf("%d", &y);
fflush(stdin);
getmonth(y, 1, 11);
printf("\n继续查询(y/n)");
ch = getchar();
if(ch != 'y' && ch != 'y')
break;
}
}

int main()
{
char ch;
while(1)
{
system("cls");
printf("1.查询星期\n");
printf("2.查询月份\n");
printf("3.显示一年\n");
printf("4.退出程序\n");
ch = getchar();
fflush(stdin);
switch(ch)
{
case '1':
dayofweek();
break;
case '2':
monthofyear();
break;
case '3':
getyear();
break;
case '4':
printf("是否退出(y/n)");
ch = getchar();
fflush(stdin);
if(ch == 'y' || ch == 'y')
exit(0);
break;
}
}
}
另外,虚机团上产品团购,超级便宜
佚名
2024-06-06 22:30:00
最佳回答
类似问题(10)
  • 佚名
    2024-06-06 02:52:48

    谁能用c++编写计算万年历程序啊?

    说实话,编写这样一个东东有点麻烦,况且lz只用零分~参考http://我去年编写的,里面没有“显示某一年某一个月的日历”的功能,但是你参考其他功能自己写一下吧。...

  • 佚名
    2024-06-06 18:59:44

    c语言万年历程序设计

    功能要求:模仿现实生活中的挂历. 当前页以系统当前日期的月份为准显...答:#include int leap (int year) {if(year%4==0...

  • 佚名
    2024-06-06 08:00:00

    万年历查询程序. c语言代码

    除了天数差计算,基本上是完成了你所提出的功能(天数差计算其实已经提供了年内序数计算方方法,可以在此基础上完善即可)。包含星期计算、公历转农历、农历转公历、节气查...

  • 佚名
    2024-06-06 08:00:00

    用c语言编写一个万年历系统

    #include<stdio.h> #define mon   1#define tues  2#define wed   3#define thur  ...

  • 佚名
    2024-06-06 08:00:00

    用c语言编写万年历程序

    // test1.cpp : defines the entry point for the console application.//#include &l...

  • 佚名
    2024-06-06 08:00:00

    用c语言写万年历

    写万年历程序,您需要先了解万年历的特点 下面是万年历的特点(复制粘贴的):1. 平年365天(52周+1天),闰年366天(52周+2天)。平年2月28天,闰年...

  • 佚名
    2024-06-06 08:00:00

    用c或c++编程实现一个简单、实用的万年历程序

    自己用vc弄下排版。#include<stdio.h> #include<stdlib.h> char*month_str[]={"january"...

  • 佚名
    2024-06-06 08:00:00

    关于c++编写万年历程序

    // abc4.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<stdio.h>#include<...

  • 佚名
    2024-06-06 08:00:00
  • 佚名
    2024-06-06 08:00:00

    在c语言中 使用switch语句编写“显示某年某月的天数”程序:

    定义一个宏来判断闰年,你也可以参看唐浩强c语言程序设计这本书里面的写法,他用的是调用一个函数。 #include <stdio.h>#define **l...