万年历代码急求:万年历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】退出
");
}
justhost怎么样?justhost服务器好不好?JustHost是一家成立于2006年的俄罗斯服务器提供商,支持支付宝付款,服务器价格便宜,200Mbps大带宽不限流量,支持免费更换5次IP,支持控制面板自由切换机房,目前JustHost有俄罗斯6个机房可以自由切换选择,最重要的还是价格真的特别便宜,最低只需要87卢布/月,约8.5元/月起!总体来说,性价比很高,性价比不错,有需要的朋友可以...
野草云服务商在前面的文章中也有多次提到,算是一个国内的小众服务商。促销活动也不是很多,比较专注个人云服务用户业务,之前和站长聊到不少网友选择他们家是用来做网站的。这不看到商家有提供香港云服务器的优惠促销,可选CN2、BGP线路、支持Linux与windows系统,支持故障自动迁移,使用NVMe优化的Ceph集群存储,比较适合建站用户选择使用,最低年付138元 。野草云(原野草主机),公司成立于20...
hostkey应该不用说大家都是比较熟悉的荷兰服务器品牌商家,主打荷兰、俄罗斯机房的独立服务器,包括常规服务器、AMD和Intel I9高频服务器、GPU服务器、高防服务器;当然,美国服务器也有,在纽约机房!官方网站:https://hostkey.com/gpu-dedicated-servers/比特币、信用卡、PayPal、支付宝、webmoney都可以付款!CPU类型AMD Ryzen9 ...
万年历代码为你推荐
初始化磁盘台式机新添加的硬盘怎么初始化磁盘电子听诊器听诊器的构造及原理是……163登陆163邮箱登陆电脑版横幅广告促销横幅怎么写微店是什么开微店和开淘宝店有什么区别吗小蓝条戴尔系统开机动画里的小蓝条怎么去spinmaster那个街球队 叫什么And1的 球队和球员介绍空间图片从哪里能找到更好的空间图片免杀远控求一款好使(免杀)远程控制软件?平均数计算器卡西欧计算器怎样求平均数
韩国vps 域名解析文件 3322免费域名 godaddy优惠码 老左博客 网站监控 seovip 世界测速 华为云服务登录 创建邮箱 web应用服务器 免费网络 美国迈阿密 shuangcheng windowssever2008 机柜尺寸 远程登录 卡巴下载 免费服务器 linux命令vi 更多