万年历查询程序用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;
}
}
}
另外,虚机团上产品团购,超级便宜
手头没有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
问用c++程序编写打印一份万年历?急急急
答http://
-
佚名2024-06-06 08:00:00
问在c语言中 使用switch语句编写“显示某年某月的天数”程序:
答定义一个宏来判断闰年,你也可以参看唐浩强c语言程序设计这本书里面的写法,他用的是调用一个函数。 #include <stdio.h>#define **l...
风水
起名
网名
- 1 伤感网名网名
- 2 能让人映像深刻的网名
- 3 2017最新个性网名男生
- 4 找个好听的4个字的网名
- 5 带记字的网名
- 6 游戏昵称女生五个字的
- 7 好看的微信情侣昵称
- 8 支付宝里别人昵称怎么改
- 9 上官清木的昵称意思
- 10 网易云昵称怎么起不了怎么办
说说
- 1 那就这样吧 说说
- 2 心烦时抽根烟说说
- 3 有关思念一个人的说说
- 4 充实有关的说说
- 5 陪我一起度过新年说说
- 6 关于外出闯荡的说说
- 7 打卡一个网红店的说说
- 8 关于雪的思念的句子说说心情
- 9 亲姐妹争家产的说说
- 10 嫌弃自己胖说说