万年历代码急求:万年历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】退出
");
}
棉花云官网棉花云隶属于江西乐网科技有限公司,前身是2014年就运营的2014IDC,专注海外线路已有7年有余,是国内较早从事海外专线的互联网基础服务提供商。公司专注为用户提供低价高性能云计算产品,致力于云计算应用的易用性开发,并引导云计算在国内普及。目前公司研发以及运营云服务基础设施服务平台(IaaS),面向全球客户提供基于云计算的IT解决方案与客户服务(SaaS),拥有丰富的国内BGP、双线高防...
CloudCone商家我们很多喜欢低价便宜VPS主机的肯定是熟悉的,个人不是特别喜欢他。因为我之前测试过几次,开通的机器IP都是不通的,需要删除且开通好几次才能得到一个可用的IP地址。当然他们家的优势也是有的,就是价格确实便宜,而且还支持删除重新开通,而且机房只有一个洛杉矶MC。实话,如果他们家能多几个机房,保持现在的特点,还是有很多市场的。CloudCone是来自美国的主机销售商,成立于2017...
HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。目前商家发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付5.95美元起。下面分别列出几款主机套餐配置信息。套餐:韩国KR...
万年历代码为你推荐
高质量图片iphone上有什么高质量的壁纸APP吗torrent文件怎么打开BT文件怎么打开色温图数码相机上面色温小图标的详细作用数据管理制度数据必须符合以下基本原则有哪些vrrp配置vrrp怎样配置、它是什么东西、在那配置它呢?(超级终端里)最好举例子充值卡充值移动手机充值卡如何充值?印度it为什么说在IT印度远远领先中国水平?程序员段子为什么会有程序员间的鄙视链网页错误详细信息我为什么不可以收货那 网页错误详细信息无线呼叫系统什么是无线呼叫器?
域名转让 成都主机租用 域名备案信息查询 ftp空间 z.com 免费个人博客 mysql主机 服务器架设 绍兴高防 165邮箱 泉州电信 drupal安装 华为云服务登录 中国电信测速器 镇江高防 工信部icp备案查询 万网注册 alexa世界排名 web是什么意思 优惠服务器 更多