初中名师视频课程免费试听1200分钟 |
||||
初一全科强化班辅导课程 免费听课 | 初二强化班辅导课程 免费听课 | 初三强化班辅导课程 免费听课 |
万年历程序目 录
万年历程序
、电子万年历:用C语言设计一个年历系统,功能要求: (1)输入任一年将显示出该年的所有月份日期,对应的
C语言课程设计 万年历
cript编写一个万年历程序?">如何用javascript编写一个万年历程序?
以下是一个简单的万年历程序的实现,使用Python编写:
```python
def is_leap(year):
"""判断是否是闰年"""
return year % 4==0 and (year % 100 !=0 or year % 400==0)
def get_month_length(year, month):
"""获取指定年份和月份的天数"""
if month==2:
return 29 if is_leap(year) else 28
elif month in [4, 6, 9, 11]:
return 30
else:
return 31
def get_weekday(year, month, day):
"""获取指定日期的星期几"""
# Zeller's Congruence公式
if month <=2:
year -=1
month +=12
century=year // 100
year %=100
weekday=(day + 13 * (month + 1) // 5 + year + year // 4 + century // 4 - 2 * century) % 7
return (weekday + 6) % 7 # 将0表示星期一
def print_calendar(year, month):
"""打印指定年份和月份的万年历"""
month_names=['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
week_names=['一', '二', '三', '四', '五', '六', '日']
# 打印标题
print(f"{year}年 {month_names[month-1]}")
print('-' * 21)
print(' '.join(week_names))
# 获取指定月份的第一天是星期几
first_day_weekday=get_weekday(year, month, 1)
# 打印日期
row=[''] * 7
for i in range(first_day_weekday):
row[i]=' ' # 占位用
for day in range(1, get_month_length(year, month) + 1):
row[first_day_weekday]=f"{day:2d}"
if first_day_weekday==6:
print(' '.join(row))
row=[''] * 7
first_day_weekday=(first_day_weekday + 1) % 7
# 打印最后一行
您好:手机麻将这款游戏可以开挂的,确实是有挂的,通过添加客服微信安装这个软件.打开.
手机麻将怎么辅助是可以的,看以下步骤:
一、首先在官方下载游戏app或者添加小程序(其他链接)
二、打开你手机游戏玩法,找到在应用中找到对应的玩法辅助器。
二、打开辅助器按照辅助器的教程操作
三、按照操作使用教程:
1安装这个软件.打开.
2.在”设置DD辅助功能DD微信麻将开挂工具”里.点击”开启”.
3.打开工具.在”设置DD新消息提醒”里.前两个选项”设置”和”连接软件”均勾选”开启”.(好多人就是这一步忘记做了)
4.打开某一个微信组.点击右上角.往下拉.”消息免打扰”选项.勾选”关闭”.(也就是要把”群消息的提示保持在开启”的状态.这样才能触系统发底层接口.)
5.保持手机不处关屏的状态.
6.如果你还没有成功.首先确认你是智能手机(苹果安卓均可).其次需要你的微信升级到新版本.
7不懂找到前方图片中的微信号咨询
if len(row) > 0:
print(' '.join(row))
print()
# 测试代码
year=int(input("请输入年份(例如2022):"))
month=int(input("请输入月份(1-12):"))
print_calendar(year, month)
```
上面的代码实现了一个简单的万年历程序。用户可以输入年份和月份,程序会打印出对应的万年历。
#include <stdio.h>
#include<conio.h>
#include<stdlib.h>
int IsLeapYear(int); //函数定义
void main()
{
int i;
int day;
int year;
int temp;
int 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("Please enter the year: ");
scanf("%d",&year); //输入年份
while(Year_Start < year) //从公元1年开始执行while循环, 该年的一月一号为星期一
{
您好:手机麻将这款游戏可以开挂的,确实是有挂的,通过添加客服微信安装这个软件.打开.
手机麻将怎么辅助是可以的,看以下步骤:
一、首先在官方下载游戏app或者添加小程序(其他链接)
二、打开你手机游戏玩法,找到在应用中找到对应的玩法辅助器。
二、打开辅助器按照辅助器的教程操作
三、按照操作使用教程:
1安装这个软件.打开.
2.在”设置DD辅助功能DD微信麻将开挂工具”里.点击”开启”.
3.打开工具.在”设置DD新消息提醒”里.前两个选项”设置”和”连接软件”均勾选”开启”.(好多人就是这一步忘记做了)
4.打开某一个微信组.点击右上角.往下拉.”消息免打扰”选项.勾选”关闭”.(也就是要把”群消息的提示保持在开启”的状态.这样才能触系统发底层接口.)
5.保持手机不处关屏的状态.
6.如果你还没有成功.首先确认你是智能手机(苹果安卓均可).其次需要你的微信升级到新版本.
7不懂找到前方图片中的微信号咨询
if( IsLeapYear( Year_Start ) )
Per_Year_Days=366; //如果是闰年, 则一年有366天
else
Per_Year_Days=365; //如果不是闰年, 则一年有365天
Year_days=Year_days + Per_Year_Days; //Year_days为从公元1年到输入年份的前一年的天数的总和
Year_Start++;
}
for( temp=1; temp <=12; temp++ ) //temp从1到12, 对应一年内12个月
{
switch( temp ) //用switch语句将temp和12个月对应起来
{
case 1:
printf(" January(%d)
",year); //一月
break;
case 2:
printf(" February(%d)
",year); //二月
break;
case 3:
printf(" March(%d)
",year); //三月
break;
case 4:
printf(" April(%d)
",year); //四月
break;
case 5:
printf(" May(%d)
",year); //五月
break;
case 6:
printf(" June(%d)
",year); //六月
break;
case 7:
printf(" July( %d)
",year); //七月
break;
case 8:
printf(" August(%d)
",year); //八月
break;
case 9:
printf(" September(%d)
",year); //九月
break;
case 10:
printf(" October(%d)
",year); //十月
break;
case 11:
printf(" November(%d)
",year); //十一月
break;
case 12:
printf(" December(%d)
",year); //十二月
break;
}
i=Year_days % 7; //每个星期有7
您好:手机麻将这款游戏可以开挂的,确实是有挂的,通过添加客服微信安装这个软件.打开.
手机麻将怎么辅助是可以的,看以下步骤:
一、首先在官方下载游戏app或者添加小程序(其他链接)
二、打开你手机游戏玩法,找到在应用中找到对应的玩法辅助器。
二、打开辅助器按照辅助器的教程操作
三、按照操作使用教程:
1安装这个软件.打开.
2.在”设置DD辅助功能DD微信麻将开挂工具”里.点击”开启”.
3.打开工具.在”设置DD新消息提醒”里.前两个选项”设置”和”连接软件”均勾选”开启”.(好多人就是这一步忘记做了)
4.打开某一个微信组.点击右上角.往下拉.”消息免打扰”选项.勾选”关闭”.(也就是要把”群消息的提示保持在开启”的状态.这样才能触系统发底层接口.)
5.保持手机不处关屏的状态.
6.如果你还没有成功.首先确认你是智能手机(苹果安卓均可).其次需要你的微信升级到新版本.
7不懂找到前方图片中的微信号咨询
天, 故用每年的天数对7取余
printf("Mon Tue Wed Thu Fri Sat Sun
");
if( i !=0 ) //如果余数不为零
for( temp_i=0; temp_i < i; temp_i++)
printf(" "); //则打印空格(这里用 代替空格, 更加美观), 空格数为i
day=1; //初始化day为1, 为下面的while循环做准备
if( IsLeapYear(year) && temp==2) //如果输入的年份是闰年, 并且月份为2
while( day <=month_day[12] ) //day为一循环变量, 取值为1-365(闰年的话为1-366)
{
if( day >1 ) //如果天数大于一
if( Year_days % 7==0 ) //如果是星期日, 则换行
printf("
");
if( day >=10 )
printf("%d ",day); //打印天数+空格
else
printf("%d ",day);
Year_days++;
day++;
}
else //如果不满足"输入的年份是闰年, 并且月份为2"
while (day <=month_day[temp-1])
{
if( day > 1 )
if( Year_days % 7==0 )
printf("
");
if( day >=10 )
printf("%d ",day);
else
printf("%d ",day);
Year_days++;
day++;
}
printf("
");
if( getch()=='q' ) //如果输入为q, 则退出程序
exit(0);
}
getch(); //每按一次键, 打印一个月份
}
int IsLeapYear( int year )
{
//判断是否是闰年, 是则返回1, 否则返回0
if ((year %4==0) && (year % 100 !=0) ||
(year % 400==0) )
return 1;
else
return 0;
}
你可以选择一个很古老的日子做为基准—— -4712年1月1日12:00UTC(天文学上就是以这一天为准的),然后计算距今的天数,计算方法如下:
1. 设Y为给定年份,M为月份,D为该月日期(可以带小数);
2.若M > 2,Y和M不变,若 M=1或2,以Y–1代Y,以M+12代M,也就是说,如果日期在1月或2月,则被看作是在前一年的13月或14月。
3. 对格里高利历(1582年10月15日及以后)有:A=INT(Y/100) B=2
- A + INT(A/4);对儒略历(1582年10月4日及以前),取 B=0。
4. JD=int(365.25(Y+4716))+int(30.6001(M+1))+D+B-1524.5
5. 星期的计算,则是DayofWeek=(int( JD+1.5))%7;
6. 为了方便计算,通常取2000年1月1日12:00UTC,这一天的JD=2451545。
转换公式是j2000=int2(JD-2451545+0.5);,其中int2是取小于等于该数的函数。
7. 两个日期之间相差天数都可以用基准时间来计算。
8. 如要显示整个月,像日历一样打印显示,可以通过判断月首(每个月1日)是星期几,再计算这个月的天数(可以用下个月1日的JD减去这个月1日的JD),然后依次打印每个日,当然注意,判断换行来对应星期几。
9. 判断闰年:从1582年10月15日及以后,能被4整除但不能被100整除或能被400整除的年份为闰年,在这之前,是能被4整除的就为闰年。
10. 查询某年nY某月nM某日nD是这一年的第nDay天可以用以下方法:
设k初始为2,判断如果是闰年则k=1,nDay=int(275*nY/9)-k*(int((nM+9)/12))+nD-30;
11. 生肖与地支是相同的序号,因此只要计算天干、地支就可以了。
天干:(年份-1984+9000)%10,地支:(年份-1984+9000)%12。
参考 httpokblog.163tgd/paradise300@126/blog/static/69940666201322622926503/末尾下载,内有详细示例工程源代码。
综上11个要点的函数,都能在这个dll中导出,直接调用就可以了。
你可以参考下百度的万年历,绝对符合你的学习要求
httpoksite.baidutgd/list/wannianli.htm