万年历查询程序 功能要求: (1)提供菜单方式选择 (2)输入年份、月份、日期,计算得到的是这一天
计算得到的这一天是星期几吗?? 还是?/* welcome to use the wannianli system! */
#include<stdio.h>
#include<stdlib.h>
char* month_str[]={"january","february","march","april","may","june","july","august","september","october","november","december"};
char* week[]={"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
int leap (int year)//判断闰年
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else return 0;
}
int month_day(int year,int month) //判断这一个月有多少天
{
int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31}; //初始化每个月的天数
if(leap(year)&&month==2 )
return 29;
else
return(mon_day[month-1]);
}
int firstday(int year,int month,int day)//判断这一个月的第一天是星期几
{
int c=0;
float s;
int m;
for(m=1;m<month;m++)
c=c+month_day(year,m);
c=c+day;
s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;
return ((int)s%7);
}
int printallyear(int year)/*print the all year*/
{
int a,b;
int i,j=1,n=1,k;
for(k=1;k<=12;k++)
{
j=1,n=1;
b=month_day(year,k);
a=firstday(year,k,1);
printf("\n\n%s(%d)\n",month_str[k-1],k);
printf(" sun mon tue wed thu fri sat \n**************");
if(a==7)
{
for(i=1;i<=b;i++)
{
printf("%4d",i);
if(i%7==0)
{
printf("**************\n**************");
}
}
}
if(a!=7)
{
while (j<=4*a)
{
printf(" ");
j++;
}
for(i=1;i<=b;i++)
{
printf("%4d",i);
if(i==7*n-a)
{
printf("**************\n**************");
n++;
}
}
}
printf("**************\n");
}
return 1;
}
int main()
{
int option,da;
char ch;
int year,month,day;
while(1)
{
printf("\n请选择你所需要的服务:\n");
printf("\n输入1求某个日期对应的星期");
printf("\n输入2结束程序\n");
scanf("%d",&option);
switch(option)
{
case 1:
while(1)
{
printf("\nplease input the year,month and day(xxxx,xx,xx):");
scanf("%d,%d,%d,%c",&year,&month,&day);
da=firstday(year,month,day);
printf("\n%d-%d-%d ** %s,do you want to continue?(y/n)",year,month,day,week[da]);
fflush(stdin);
scanf("%c",&ch);
if(ch=='n'||ch=='n')
break;
}
break;
case 2:
fflush(stdin);
printf("are you sure?(y/n)");
scanf("%c",&ch);
if(ch=='y'||ch=='y')
exit(0);
break;
default:
printf("\nerror:sorry,there ** no th** service now!\n");
break;
}
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
char* month_str[]={"january","february","march","april","may","june","july","august","september","october","november","december"};
char* week[]={"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
int leap (int year)//判断闰年
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else return 0;
}
int month_day(int year,int month) //判断这一个月有多少天
{
int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31}; //初始化每个月的天数
if(leap(year)&&month==2 )
return 29;
else
return(mon_day[month-1]);
}
int firstday(int year,int month,int day)//判断这一个月的第一天是星期几
{
int c=0;
float s;
int m;
for(m=1;m<month;m++)
c=c+month_day(year,m);
c=c+day;
s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;
return ((int)s%7);
}
int printallyear(int year)/*print the all year*/
{
int a,b;
int i,j=1,n=1,k;
for(k=1;k<=12;k++)
{
j=1,n=1;
b=month_day(year,k);
a=firstday(year,k,1);
printf("\n\n%s(%d)\n",month_str[k-1],k);
printf(" sun mon tue wed thu fri sat \n**************");
if(a==7)
{
for(i=1;i<=b;i++)
{
printf("%4d",i);
if(i%7==0)
{
printf("**************\n**************");
}
}
}
if(a!=7)
{
while (j<=4*a)
{
printf(" ");
j++;
}
for(i=1;i<=b;i++)
{
printf("%4d",i);
if(i==7*n-a)
{
printf("**************\n**************");
n++;
}
}
}
printf("**************\n");
}
return 1;
}
int main()
{
int option,da;
char ch;
int year,month,day;
while(1)
{
printf("\n请选择你所需要的服务:\n");
printf("\n输入1求某个日期对应的星期");
printf("\n输入2结束程序\n");
scanf("%d",&option);
switch(option)
{
case 1:
while(1)
{
printf("\nplease input the year,month and day(xxxx,xx,xx):");
scanf("%d,%d,%d,%c",&year,&month,&day);
da=firstday(year,month,day);
printf("\n%d-%d-%d ** %s,do you want to continue?(y/n)",year,month,day,week[da]);
fflush(stdin);
scanf("%c",&ch);
if(ch=='n'||ch=='n')
break;
}
break;
case 2:
fflush(stdin);
printf("are you sure?(y/n)");
scanf("%c",&ch);
if(ch=='y'||ch=='y')
exit(0);
break;
default:
printf("\nerror:sorry,there ** no th** service now!\n");
break;
}
}
return 0;
}
佚名
2024-12-23 14:07:24
类似问题(10)
-
佚名2024-12-23 07:35:11
问2012年万年历黄道吉日查询(结婚)想选3月份、4月份好日子结婚,多谢大家了
答☆吉祥温馨提示---您二位的生肖* *年类别:【因人而异】男1977【丁巳 蛇】年4月26日生,女1984【甲子 鼠】年10月21日生本月为您二位结婚的【月】...
-
佚名2024-12-23 23:57:14
问电子万年历:用c语言设计一个年历系统,功能要求: (1)输入任一年将显示出该年的所有月份日期,对应的星
答两个月并排显示也太变态了,这个是各个月连续显示的。#include <stdio.h> #include <conio.h> #include &l...
-
佚名2024-12-23 19:55:00
问万年历查询l966年农历2月2日
答万年历公历 1966年2月21日 星期一农历 二月初二 丙午年【马年】庚寅月 辛亥日 万年历1966年农历2月2日 , 公历1966年2月21日...
-
佚名2024-12-23 14:21:17
问万年历查询1964年农历三月份
答你这说的不具体啊,不然你自己下载个日历看吧。我现在用的人生日历不错,推荐给你。
-
佚名2024-12-23 08:00:00
问万年历查询属虎2016年1月提车黄道日
答提车吉日16年 1月 29日 / 星期五 / 十二月 二十庚戌 / 冲甲辰龙16年 1月 30日 / 星期六 / 十二月 二一辛亥 / 冲乙巳蛇建议事项:一.检...
-
佚名2024-12-23 08:00:00
问用vb设计一个万年历程序,用来查询某年的元旦时星期几,已知计算某年y的元旦时星期几,可由以下式子得出:f
答private sub form_click() dim y as integer, f as integer, k as integer y = val(i...
-
佚名2024-12-23 08:00:00
问万年历查询程序要c++的
答随便写了一个,大概250行代码,是基于自己多年前开发的库来实现的,如果是写来使用,源码工程拿去就行,如果是交作业的,需要自己去加工一下。源码密码:tu0q不带库...
-
佚名2024-12-23 08:00:00
问编写c语言万年历程序 要求打印任意年份的日历或某年某月的月历或者查询某天是星期几
答代码如下:#include <stdio.h> int numday[2][12]={{31,28,31,30,31,30,31,31,30,31,30,...
-
佚名2024-12-23 08:00:00
问c语言:用户输入年份月份日期,输入该日期是该年的第几天?(要求:用数组存放一年12个月的天数)
答#include <stdio.h>int main(){int year,month,day;int days[]={31,28,31,30,31,30...
-
佚名2024-12-23 08:00:00
问编写一个程序实现以下功能:输入某天的日期(年、月、日) a)算出这天是该年的第几天
答网友,去看看这个最佳答案,网址:https:// 是用c语言编写的。
风水
起名
网名
- 1 网名七喜的意思
- 2 与拾忆匹配的网名
- 3 武林外传手游医师网名
- 4 六字微信个性网名大全霸气
- 5 游戏关于一刀的网名
- 6 三个字文艺昵称大全
- 7 比较亲热的老公昵称大全
- 8 女性好听昵称
- 9 2-3个字的微信昵称
- 10 很妖孽的昵称
说说
- 1 qq头像伤 个性签名
- 2 半夜饿了说说
- 3 天太热了的说说
- 4 qq说说圈人
- 5 个性端午节说说
- 6 2017姐妹说说
- 7 三十岁女人的说说
- 8 明天就结婚9年了的说说
- 9 上班不想起床的说说
- 10 今生有你我知足了的说说大全