万年历代码急求:万年历c代码 显示 属相 时间 日期 农历
万年历代码 时间:2021-08-03 阅读:(
)
c语言中编写万年历的代码要用到那些函数?
#include"stdio.h"
#define YES 1
#define NO 0
int isleap(int year)
{
int leap=NO;
if(year%4==0 && year%100!=0 || year%400==0)
leap = YES;
return leap;
}
int week_of_firstday(int year)
{
int n;
n=(year+(year-1)/4-(year-1)/100+(year-1)/400)%7;
return n;
}
int main()
{
int year,month,day,weekday,len_of_month,i;
printf("请输入年份:");
scanf("%d",&year);
weekday=week_of_firstday(year);
for(month=1;month<=12;month++)
{
printf("
"); printf(" %d年%d月
",year,month);
printf("---------------------
");
printf("日 一 二 三 四 五 六
");
printf("---------------------
");
for(i=0;i<weekday;i=i+1)
printf(" ");
if(month==4||month==6||month==9||month==11)
len_of_month=30;
else if(month==2)
{
if(isleap(year))
len_of_month=29;
else
len_of_month=28;
}
else
len_of_month=31;
for(day=1;day<=len_of_month;day++)
{
if(day>9)
printf("%d ",day);
else
printf("%d ",day);
weekday++;
if(weekday==7)
{
weekday=0;
printf("
");
}
}
printf("
");
}
return 0;
}求万年历代码 一定要C++的 最好全面点
一个万年历的C++实现代码
#include < iostream >
#include < iomanip >
using namespace std;
int FistDayofYear( int y);
int DaysofMonth( int m);
void PrintMonth( int m);
void PrintHead( int m);
bool LeapYear( int y);
int WeekDay,year;
void main()
{
INPUT:
cerr << " 请输入年份(>1): " ;
cin >> year;
WeekDay = FistDayofYear(year);
cout << "
" << year << " 年
" ;
cout << " ========================================================== " ;
for ( int a = 1 ;a < 13 ;a ++ )
PrintMonth(a);
cout << endl;
int r = 0 ,u = 0 ;
cout << " 继续打1,退出打0 : " ;
cin >> r;
if (r > u)
goto INPUT;
else
goto END;
END:;
}
void PrintMonth( int m)
{
PrintHead(m);
int day = DaysofMonth(m);
for ( int i = 1 ;i <= day;i ++ )
{
cout << setw( 5 ) << i;
WeekDay = (WeekDay + 1 ) % 7 ;
if (WeekDay == 0 )
{
cout << endl;
cout << setw( 5 ) << " " ;
}
}
}
void PrintHead( int m)
{
cout << "
" << setw( 5 ) << m;
cout << " 月 日 一 二 三 四 五 六
" ;
cout << setw( 5 ) << " " ;
for ( int i = 0 ;i < WeekDay;i ++ )
cout << setw( 5 ) << " " ;
}
int DaysofMonth( int m)
{
switch (m)
{
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 : return 31 ;
case 4 :
case 6 :
case 9 :
case 11 : return 30 ;
case 2 : if (LeapYear(year)) return 29 ;
else return 28 ;
}
return 0 ;
}
bool LeapYear( int y)
{
return (y % 4 == 0 && y % 100 != 0 || y % 400 == 0 );
}
int FistDayofYear( int y)
{
long m;
m = y * 365 ;
for ( int i = 1 ;i < y;i ++ )
m += LeapYear(i);
return m %= 7 ;
}急求:万年历c代码 显示 属相 时间 日期 农历
/*
* 程序名称: 万年历
* 功能描述: 在字符界面下显示万年历的功能.
* 设计编程: 董小向
* 时 间: 2007-5
*/
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#define CURU 72
#define CURD 80
#define CURL 75
#define CURR 77
#define ESC 27
void printWNL(int, int); //简单格式打印万年历
void printWNL2(int, int); //打印带表格的万年历
int Week(int,int,int); //求星期几
int getDays(int, int); //计算某个月的天数
int isRunNian(int); //判断是否闰年
/*
*主函数,应用程序入口
*/
void main()
{
int year,month;
struct tm t;
char ch;
_getsystime(&t); //标准函数, 获得系统当前时间
year = t.tm_year + 1900; //得到当前年份
month = t.tm_mon + 1; //得到当前月份
do
{
system("cls"); //调用DOS清屏命令
printWNL(year,month); //自定义函数, 打印万年历
ch = getch(); //获得无回显控制台输入字符
if(ch == ESC) //ESC键,退出循环,结束程序
break;
else if(ch == 0) //若值为零,则用户敲了功能键,继续获取后续代码。
ch = getch();
switch(ch)
{
case CURL: year--; break; //左键减年
case CURR: year++; break; //右键加年
case CURU: //上键减月
month--;
if(month == 0)
{
month = 12;
year--;
}
break;
case CURD: //下键加月
month++;
if(month == 13)
{
month = 1;
year++;
}
break;
default:;
}
}while(1);
printf("
谢谢使用,欢迎常来!再见。
");
}
/*
*简单格式打印万年历
*参数: y 整型,接收年份值; m 整型,接收月份值;
*返回值: 无
*/
void printWNL(int y, int m)
{
int i,j;
int day = 1 - Week(y,m,1); //天数初始值,定位1号的位置
int days = getDays(y,m);
printf(" %4d年%2d月
",y,m);
printf(" 日 一 二 三 四 五 六
");
for(i = 1; i <= 6; i++)
{
for(j = 1; j <= 7; j++)
{
if(day <= 0 || day > days)
printf(" ");
else
printf("%3d",day);
day++;
}
printf("
");
}
printf(" 提示:【←】减年 【→】加年 【↑】减月 【↓】加月 【ESC】退出
");
}
/*
*求星期几
*参数: y 整型,接收年份值; m 整型,接收月份值; d 整型,接收天的号数
*返回值: 整型, 是0,1-6七个数之间的一个数,0代表星期日,1-6代表星期一至星期六
*/
int Week(int y,int m,int d)
{
int days = 0; //总天数
int i;
for(i = 1; i < y; i++) //累计1到y-1年的天数
days += isRunNian(i) ? 366 : 365;
for(i = 1; i < m; i++) //累计y年第1月到第m-1月的天数
days += getDays(y,i);
days += d; //累计当月的天数。
return days % 7; //返回星期值
}
/*
*判断是否闰年
*参数: y 整型, 接收年份值
*返回值: 整型, 只为0或1, 0代表假, 1代表真
*/
int isRunNian(int y)
{
return (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) ? 1 : 0;
}
/*
*计算某个月的天数
*参数: y 整型,接收年份值; m 整型,接收月份值;
*返回值: 整型, 是0, 28, 29, 30, 31之间的一个数
*注意: 返回值为0,表示你调用该函数时传递了不正确的年份值或月份值.
*/
int getDays(int y, int m)
{
int days = 0;
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31; break;
case 4:
case 6:
case 9:
case 11:
days = 30; break;
case 2:
days = isRunNian(y) ? 29 : 28; break;
default:;
}
return days;
}
void printWNL2(int y, int m)
{
int i,j;
int day = 1 - Week(y,m,1); //天数初始值,定位1号的位置
int days = getDays(y,m);
printf("
╔══════════════════════════╗");
printf("
╔══万年历 查询═════════════════╗║
");
printf(" ║ %4d 年 %2d 月 ║║
",y,m);
printf(" ╟———┬———┬———┬———┬———┬———┬———╢║
");
printf(" ║ 日 │ 一 │ 二 │ 三 │ 四 │ 五 │ 六 ║║
");
for(i = 1; i <= 6; i++)
{
printf(" ╟———┼———┼———┼———┼———┼———┼———╢║
");
printf(" ║");
for(j = 1; j <= 7; j++)
{
if(day <= 0 || day > days)
printf(" ");
else
printf(" %2d ",day);
j < 7 ? printf("│") : i < 6 ? printf("║║") : printf("║╝");
day++;
}
printf("
");
}
printf(" ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╝
");
printf(" 提示:【←】减年 【→】加年 【↑】减月 【↓】加月 【ESC】退出
");
}
关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...
BGPTO是一家成立于2017年的国人主机商,从商家背景上是国内的K总和有其他投资者共同创办的商家,主营是独立服务器业务。数据中心包括美国洛杉矶Cera、新加坡、日本大阪和香港数据中心的服务器。商家对所销售服务器产品拥有自主硬件和IP资源,支持Linux和Windows。这个月,有看到商家BGPTO日本和新加坡机房独服正进行优惠促销,折扣最低65折。第一、商家机房优惠券码这次商家的活动机房是新加坡...
专心做抗投诉服务器的VirtVPS上线瑞士机房,看中的就是瑞士对隐私的保护,有需要欧洲抗投诉VPS的朋友不要错过了。VirtVPS这次上新的瑞士服务器采用E-2276G处理器,Windows/Linux操作系统可选。VirtVPS成立于2018年,主营荷兰、芬兰、德国、英国机房的离岸虚拟主机托管、VPS、独立服务器、游戏服务器和外汇服务器业务。VirtVPS 提供世界上最全面的安全、完全受保护和私...
万年历代码为你推荐
在线编辑有没有能在手机端在线编辑文档的软件?初始化磁盘为什么我初始化,磁盘就变成这样了app退款苹果app能不能退款运行时错误1004ipad下载时出现错误1004是怎么回事?该怎么解决?实数的定义数学中的“实数”是什么?蓝牙开发iOS的蓝牙开发跟Android有什么不同vrrp配置我准备做一个关于MSTP的配置,但是不知道如何去做,拓扑如下手机壳生产厂家请问哪里有便宜的手机壳批发?谢谢!充值卡充值移动手机充值卡如何充值?协亨为什么协亨的手机卖这么便宜~?
汉邦高科域名注册 香港主机租用 美国linux主机 vps交流 新网域名解析 cn域名个人注册 godaddy域名优惠码 好看的桌面背景大图 亚洲小于500m asp免费空间申请 91vps 河南移动m值兑换 免费dns解析 江苏双线服务器 下载速度测试 免费蓝钻 购买空间 稳定空间 服务器防御 shuangcheng 更多