C语言编写的万年历代码
用C语言实现万年历
用C语言实现万年历——编程
2008-05-23 23:22
说明:本程序的日期输入格式为2005 09,中间为空格;若输入q。则代表退出程序
#include <stdio.h>
int IsLeapYear(int); /*定义子函数*/
main()
{
int i,day,year,temp,temp_i; /*定义变量*/
long int Year_days=0;
int Year_Start=1;
int Per_Year_Days;
int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};/*定义
月份*/
printf("We know that 2000.01.01 is saturday!\n");
printf("Please enter the year and month:"); /*提示信息*/
while(1)
{
scanf("%d %d",&year,&temp);
if(getchar()=='q')
exit(0);
while(Year_Start < year)
{
if(IsLeapYear(Year_Start)) /*调用IsLeapYear函数判断是否为
闰年*/
Per_Year_Days=366; /*闰年一年366天*/
else
Per_Year_Days=365; /*平年一年365天*/
Year_days=Year_days + Per_Year_Days;
Year_Start++;
}
/*输出每个月的日历*/
C语言万年历代码
题目:年历显示。
功能要求:
(1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
如下图:
以下部分为代码:
#include<stdio.h>
#include<math.h>
void part1(int x); //函数1~6为打印日历的函数
void part2(int x);
void part3(int x);
void part4(int x);
void part5(int x);
void part6(int x);
int weak(int x,int y); //计算1号对应的星期
int weak2(int x,int y,int z); //计算星期,为函数day提供数据
int year(int x); //打印日历的函数
int mouth(int x); //打印月历的函数
int day(int x); //查询天数的函数
int distance(int x,int y,int z); //提供距离天数查询
int main()
{
int a;
char z;
printf("
****************************************************************\n");
printf(" * *\n");
printf(" * *\n");
printf(" * *\n");
printf(" * 欢迎使用万年历!*\n");
万年历c语言源程序
万年历c语言源程序
#include stdio.h #include windows.h #include wincon.h #includestring.h #includestdlib.h #includeconio.h #includetime.h #includemath.h #define NULL 0
*****_SCREEN_BUFFER_INFO csbiInfo; extern *****API HWND WINAPI GetConsoleWindow(); time_t T;
struct tm * now; int min,sec;
int hour,nowyear,nowmonth,nowday; void ti2() { time ( T ); now = localtime ( T ); hour=now-tm_hour%12; min=now-tm_min-15; sec=now-tm_sec-15; }
void ti(){ time ( T ); now = localtime ( T ); hour=now-tm_hour; min=now-tm_min; sec=now-tm_sec; nowyear=now-tm_year+1900; nowmonth=now-tm_mon+1; nowday=now-tm_mday; }
int yearbak=0; void clock_sz(); int pd( int year);
void huizs(int line_head_month); void hzdy(int year,int nowmonth_hz); void menu(); void clear();
万年历程序设计c语言代码
这是当时我做的一个小小的课题,希望对你有所帮助
#include "stdio.h" /* Required for MS-DOS use */
#define ENTER 0x1C0D /* Enter key */
int year, month, day;
static char *days[8] = {" ","Sunday ","Monday ","Tuesday ",
"Wednesday","Thursday ","Friday ","Saturday "}; struct TIMEDATE {
int year; /* year 1980..2099 */
int month; /* month 1=Jan 2=Feb, etc. */
int day; /* day of month 0..31 */
int hours; /* hour 0..23 */
int minutes; /* minute 0..59 */
int seconds; /* second 0..59 */
int hsecs; /* 1/100ths of second 0..99 */
char dateline[47]; /* date & time together */
};
static struct TIMEDATE today;
main()
{
char cmonth[3];
char cday[3];
char cyear[5];
double getdays();
double daynumb, numbnow;
C语言实训--万年历源代码
C语言实训--万年历源代码
# include
#include
#include
#include
#include
# define YEAR 365
int numday[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31}, {31,29,31,30,31,30,31,31,30,31,30,31}};
int leap(int year);
int calday(int y,int m);
int counterdays(int year,int month,int day);
int week(int year,int month,int day);
int eachyeartotal(int year,int month,int day);
int maxDay(int y,int month);
void print(int y,int m,int w);
void festival (int year,int month,int day);
int IsLeap(int y);
int guanli(int i);
void rili(int year,int month);
int rili1();
void rili2();
void rili3();
void rili4();
void rili5();
void fan();
void show(int year,int month,int date,int sec,int mini,int hour);
int main()
万年历——C语言编写
万年历的制作,C语言编写!!以下是代码:
#include
#include
using namespace std;
int i,c,day,year,k,a[50];
void f1(int x) //大月
{
for( i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000'; //1 号前均为空格
for(i=k;i<31+k;i++)
a[i]=a[i-1]+1;
}
void f2(int x) //小月
{
for( i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';
for(i=k;i<30+k;i++)
a[i]=a[i-1]+1;
}
void f3(int x) //闰年二月
{
for( i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';
for(i=k;i<29+k;i++)
a[i]=a[i-1]+1;
}
void f4(int x) //非闰年二月
{
for( i=0;i<50;i++)
a[i]=33;
for(i=k-1;i>=0;i--)
a[i]='\000';
for(i=k;i<28+k;i++)
a[i]=a[i-1]+1;
}
void g(int y[],int z) // 输出日历表
{
cout<<" 日"<<'\t'<<" 一"<<'\t'<<" 二"<<'\t'<<" 三"<<'\t'<<" 四"<<'\t'<<" 五"<<'\t'<<"六"<
万年历c语言代码讲解
万年历c语言代码讲解
万年历是一种常见的日历形式,可以显示一年中每一天的日期和星期几。在计算机编程中,我们可以使用C语言编写一个万年历的程序来实现这个功能。
我们需要了解一个概念:闰年。闰年是指能被4整除但不能被100整除的年份,或者能被400整除的年份。闰年的2月份有29天,而普通年份的2月份只有28天。
接下来,我们可以开始编写程序了。首先,我们需要定义一个结构体来表示日期,结构体中包含年、月和日三个成员变量。然后,我们可以编写一个函数来判断某一年份是否是闰年。根据闰年的定义,我们可以使用取余运算符(%)来判断。
接下来,我们需要编写一个函数来计算某一年月的某一天是星期几。这个函数的核心思想是根据已知的某一天是星期几,然后通过计算得出某一天之后或之前的日期是星期几。我们可以使用一个数组来保存每个月份的天数,并根据年份是否是闰年来调整2月份的天数。
在计算星期几的过程中,我们可以使用蔡勒公式。蔡勒公式是一种计算星期几的方法,根据蔡勒公式,我们可以得出某一天是星期几。具体的计算公式可以在代码中实现,但是根据要求,我们不能输出公式,所以在这里就不展开讲解了。
接下来,我们可以编写一个主函数来调用上述的函数,并输出结果。在主函数中,我们可以通过用户输入来获取需要查询的年月信息,然后调用函数来计算星期几,并输出结果。为了使输出结果更加美观,我们可以使用制表符来对齐输出的结果。
在编写主函数的过程中,我们还可以加入一些错误处理的代码,例如判断用户输入的年月是否合法,以及判断计算结果是否正确。这样可以增加程序的健壮性和用户体验。
C语言万年历(代码+说明)
/*本程序在Microsoft Visual Studio 2010 旗舰版中测试通过*/ #include "stdio.h"
#include "stdlib.h"
#include "time.h"
#include "conio.h"
#define KEYUP 72//宏定义键盘的键值(↑)
#define KEYDOWN 80//宏定义键盘的键值(↓)
#define KEYLEFT 75//宏定义键盘的键值(←)
#define KEYRIGHT 77//宏定义键盘的键值(→)
//函数声明部分
const int isLeap(int year);
const int getMonthDays(int year,int month);
const int yearDays(int year);
void printCalendar(int year,int month);
void main(){
int year,month;
int action = 0;
//获取本地当前的年份和月份
time_t timep;
struct tm *p;
time(&timep);
p = localtime(&timep);
year = p->tm_year+1900;//获取本地当前的年份
month = p->tm_mon + 1;//获取本地当前的月份
while(1){
printf("\t\t %d 年%d 月\n",year,month);
printCalendar(year,month);
action = getch();
万年历C代码
2012-1-1
2009-6-7(今天)
按space
按esc,出现 “Do you really want to quit?(y/n)”, 按Y则退出, 按N则返回程 序
选择上一天和下一天
wenku.baidu.com
选择上一天——按
PAGEUP
选择下一天——按
PAGEDOWN
选择上一月和下一月
选择下一月按——向右键 选择上一月按——向左键
选择上一年按——向上键
选择下一年按——向下键
选择上一年和下一年
选择日期
按Q就会显示今天 的日期,同时会提 示要求输入想选择 的日期,依次输入 要选择的日期的年 月日,中间用“-” 连接,然后按enter 则出现输入的日期。 例如2012-1-1
+ Strcut date sysTime:系统结构体,用于存储 系统日期
+ Int currentYear:表示当前的年份 + Int currentMonth:表示当前的月份 + Int currentday:表示当前的日期 + Int n_currentMon:表示当前月的天数 + Int n_lastMon:表示上一月的天数
本程序分为四个模块
一、功能控制模块:该模块用于实现日期有效 性检查,判断是否是闰年和返回值对应的星期 二、打印输出模块:该模块主要是进行输出显 示,包括打印制定个数的空格、分隔线、打印 用户使用手册、打印当前日期对应的星期以及 打印给定的星期 三、日历显示模块:该模块是程序的核心模块, 是用来显示指定的日期所在日月历 四、键值获取模块:该模块接收键盘操作,获 取键值,来进行日期调整,并调整显示模块中 的函数来显示调整后的日历。
c语言基础代码编写的简单的万年历程序
#include<stdio.h>
void print(int x,int y); //打印程序x表示这个月的总天数y表示这个月的1号的星期int month_day(int x,int y); //计算该月的天数x表示年份y表示月份
int run(int y); //判断闰年y表示年份
int month_cha(int x,int y); //每月一号的星期x表示年份y表示月份
int year_cha(int x); //每年的一月一号的星期x表示年份
void main()
{
int year,month,day,cha;
char key='y';
while(key=='y')
{
printf("请输入年月:");
scanf("%d%d",&year,&month);
day=month_day(year,month);
cha=month_cha(year,month);
print(day,cha);
printf("是否继续输入(y/n):");
scanf("%c",&key);
scanf("%c",&key);
}
}
void print(int x,int y)
{
int i,j;
printf("Sun Mon Tue Wed Thu Fri Sat\n");
for(i=0;i<y;i++) //打印空缺部分
printf("\t");
for(j=1;j<=x;j++,i++)
{
printf("%d\t",j);
if(i%7==6)
{
printf("\n");
}
}
printf("\n");
C语言万年历代码
C语言万年历代码万年历, C语言, 代码#include main(){void print_head(int x,int y); /*打印头文件*/void print_month(int x,int y); /*打印月历*/int days_of_month(int x,int y); /*计算指定年月的天数*/int leap(int x,int y); /*计算指定年月1号是星期几*/int i,days,year,month,firstday;char choose;do{printf ("\n\nplease input the year(0000~9999):\n\n");scanf ("%d",&year);if (year<0||year>9999) printf ("WANNING:ERROR,please input again!");}while (year<0||year>9999);printf ("\n\n");do{printf ("please input the month(0~12)\n\n\n");scanf ("%d",&month);if (month<=0||month>12) printf ("WANNING:ERROR,please input again!");}while (month<=0||month>12);printf ("\n\n");days=days_of_month(year,month); /*调用函数*/firstday=leap(year,month);print_head(year,month);print_month(firstday,days);choose=getchar();printf ("\n\n\n");printf("would you like to continue(y/n):\n\n"); scanf("%c",&choose);if (choose=='y'||choose=='Y') main();}days_of_month(int x,int y){int z;switch (y){case 1:case 3:case 5:case 7:case 8:case 10:case 12: z=31;break;case 4:case 6:case 9:case 11: z=30;break;case 2:{if ((x%4==0&&x%100!=0)||(x%400==0)) z=29;else z=28;break;}}return z;}leap(int x,int y){int z,i,moday;z=(x+(x-1)/4-(x-1)/100+(x-1)/400)%7;for (i=1;i{moday=days_of_month(x,i); /*钳套调用函数*/z=(z+moday)%7;}return z;}void print_head(int x,int y){printf ("\n\n********************************************************************************\n\n");printf ("\t\t\t\t%d %d\n\n",x,y);printf ("\t\t\t SUN MON TUE WED THU FRI SAT\n");printf ("\t\t\t");}void print_month(int x,int y){int i;char space[7]={' '};for (i=1;i<=x;i++)printf ("%4c",space[i]);for (i=1;i<=y;i++){if ((i+x)%7==1) printf ("\n\t\t\t%4d",i);else printf ("%4d",i);}printf ("\n\n********************************************************************************\n\n"); 自己做的日历(C语言)本帖最后由 kekeyu 于 2010-8-15 16:59 编辑 一部分抄袭维他C /*Creat-by EvE*//*亿淫帝国地址:*//*C语言社区地址:*//*亿淫帝国QQ群:109559204*//*VC++6.0编译*/#include "stdio.h"#include "conio.h"#include "stdlib.h"int main(){void print_calendar(int year,int month); //打印日历void first_set(int *year,int *month); //初始设定年月int days_of_month(int year,int month)
万年历c语言代码讲解
万年历c语言代码讲解
摘要:
一、万年历C语言代码讲解简介
1.万年历的概念及用途
2.C语言代码讲解的重要性
二、C语言代码基础
1.C语言简介
2.C语言基本语法
3.C语言的数据类型与变量
三、万年历C语言代码实现
1.计算闰年
2.计算月份的天数
3.计算日期的星期
4.输出万年历
四、万年历C语言代码的优化与拓展
1.代码性能优化
2.功能的拓展与实现
五、总结
1.万年历C语言代码讲解的意义
2.对编程能力的提升
正文:
一、万年历C语言代码讲解简介
万年历是一种记录了公历日期的工具,它可以帮助我们快速查询公历日期对应的农历、节日、提醒等信息。C语言是一种广泛应用于计算机领域的编程语言,掌握C语言编程对于学习其他编程语言有很大的帮助。本文将详细讲解万年历C语言代码的实现过程,帮助读者更好地理解C语言编程。
二、C语言代码基础
1.C语言简介
C语言是一种高级编程语言,由丹尼斯·里奇(Dennis Ritchie)于20世纪70年代在贝尔实验室开发。C语言具有良好的性能和可移植性,被广泛应用于操作系统、嵌入式系统、硬件驱动等领域。
2.C语言基本语法
C语言的基本语法包括变量声明、数据类型、运算符、控制结构、函数等。了解这些基本语法对于编写C语言代码至关重要。
3.C语言的数据类型与变量
C语言的数据类型包括整型、浮点型、字符型等。变量是存储数据的容器,通过变量名来表示。声明变量时需要指定变量的数据类型和存储空间。
三、万年历C语言代码实现
1.计算闰年
闰年是指公历年份可以被4整除但不能被100整除的年份,或者是可以被400整除的年份。通过编写一个函数,我们可以判断一个年份是否为闰年。
数字万年历简易C语言程序源代码
数字万年历简易C语言程序源代码
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int
sbit rs=P2^0; // lcd 控制端
sbit en=P2^2; // lcd 控制端
sbit all=P2^1; // lcd 控制端
sbit s0=P1^5; //时间调节
sbit s1=P1^6;
sbit s2=P1^7;
sbit voice=P2^7;
int nt;
sbit DQ=P2^6;
sbit DS1302_CLK = P2^3; //实时时钟时钟线引脚sbit DS1302_IO = P2^4; //实时时钟数据线引脚sbit DS1302_RST = P2^5; //实时时钟复位线引脚sbit ACC0 = ACC^0;
sbit ACC7 = ACC^7;
unsigned char time;
#define ads_y 0
#define ads_mo 3
#define ads_d 6
#define ads_w 9
#define ads_h 65
#define ads_m 68
#define ads_s 71
#define DS1302_SECOND 0x80 //写入ds地址宏定义
#define DS1302_MINUTE 0x82
#define DS1302_HOUR 0x84
#define DS1302_WEEK 0x8A
#define DS1302_DAY0x86
#define DS1302_MONTH 0x88
C语言万年历程序
#include
#include
int fun(int a,int tianshu) //定义一个月份日期和星期几并显示的子函数
{int i,k;
{ for(i=0;i
for(i=a+1,k=1;i
{ if(k<10) printf("%d ",k);
else printf("%d ",k);
k++;
if(i%7==0) printf("\n");} //当i为7时,换行
printf("\n");}
a=(i-1)%7; //a为该月份结束时最后一个日期是星期几
return a;}
void shuchu(char a[8]) //定义一个显示月份和分割线的子函数
{printf("----------------------------------------\n");
printf("%s\n",&a[0]);
printf("Sun Mon Tue Wed Thu Fri Sat\n");}
void panduan(int dd,int yuefen,int ri,int year)
{int i,j=0,sum=0,k[]={31,29,31,30,31,30,31,31,30,31,30,31};
int b;
int a[]={31,28,31,30,31,30,31,31,30,31,30,31};
if(year%4==0&&year%100!=0||year%400==0)
{for(i=1;i
sum=sum+k[j];}
else {for(i=1;i
sum=sum+a[j];}
sum=sum+ri;
C语言万年历程序
#include"iostream.h"
#include"iomanip.h"
#include"stdlib.h"
leapyear(int a)/*是否是闰年*/
{
if((a%4==0&&a%100!=0)||(a%100==0&&a%400==0))
return (1);
else return (0);
}
int aa[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int cc[12]={31,29,31,30,31,30,31,31,30,31,30,31};
char bb[8][8]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; ww(int a,int b,int c)
{
int n=0,m=0,i,j,k=0;
for(i=1;i {
if(leapyear(i)==1)
m=m+366;
else m=m+365;
}
for(j=1;j
{
if(leapyear(c)==1) k=k+cc[j-1];
else k=k+aa[j-1];
}
n=(m+k+a)%7;
return n;
}
void yuefen(int m)
{
cout<<"最大天数是:";
if(m==2)
cout< else cout<
}
void nianfen(int n)/*打印年份的日历*/
{
int i,j,k;
if(leapyear(n)==1)
{
for(j=1;j<=12;j++)
{
cout< cout<<"月份"< cout<<" 日"<<" 一"<<" 二"<<" 三"<<" 四"<<" 五"<<" 六"< for(i=0;i
C语言实现简单万年历
C语⾔实现简单万年历本⽂实例为⼤家分享了C语⾔实现简单万年历的具体代码,供⼤家参考,具体内容如下1
2
3
4
5
6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56#include <stdio.h>
#include<stdlib.h>
int year, month;
int run[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };
int ping[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
char week[7][10] = { "SUN","MON","TUE","WED","THU","FRI","SAT"}; bool IsLeap(int year)
{
if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) //判断闰年 {
return true;
}
else
{
return false;
}
}
void PrintStar()
{
printf("\t\t\t万年历\t\t\t\n");
printf("****************************************************\n");
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
该代码在VC++6.0编译器下运行,只要按照编译器给出的说明操作,就能将万年历显示在调试窗口中了……………………………………由于制作时间匆忙,很多注释都来不及写了,对于出学者可以慢慢看,代码很简单的,都放在了主函数里,如果有兴趣的话,可以把这些代码放在几个文件里,这样会好看点,加油了!
#include
#include
void main()
{
int m,i,j,n=0,y=2010,wo,w,a;
printf("input the form of: year-month:\t");
scanf("%d-%d",&y,&m); //输入格式的决定
if(y%4==0&&y%100!=0||y%400==0)
a=29;
else a=28; //闰年的判断及2月日数的确定
if(m<1||m>12){
printf("month is not exit,please input later!\n");
exit(0);
}
wo=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7; //1月1日的算法wo表示
for(i=0;i<55;i++)
printf("*"); //*的输入
printf("\n");
for(j=1;j<=7;j++)
printf("星期%d\t",j); //星期的输入
printf("\n"); //表前的建造
switch(m){
case 1:for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 1 month case 2:w=(wo+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=a;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 2 month case 3:w=(wo+31+a)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 3 month case 4:w=(wo+31+a+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 4 month case 5:w=(wo+31+a+31+30)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 5 month case 6:w=(wo+31+a+31+30+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 6 month case 7:w=(wo+31+a+31+30+31+30)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 7 month case 8:w=(wo+31+a+31+30+31+30+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ printf("\n"); printf("%d\t",j); n++; } break; // 8 month case 9:w=(wo+31+a+31+30+31+30+31+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 9 month case 10:w=(wo+31+a+31+30+31+30+31+31+30)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=31;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 10 month case 11:w=(wo+31+a+31+30+31+30+31+31+30+31)%7; for(i=1;i printf("\t"); n++; } for(j=1;j<=30;j++){ if(n%7==0) printf("\n"); printf("%d\t",j); n++; } break; // 11 month case 12:w=(wo+31+a+31+30+31+30+31+31+30+31+30)%7; for(i=1;i