题目----计算某年某月的天数

问题

获得某年某月有多少天,编程实现。

输入

年份和月份

目的

计算这一年这个月有多少天。

#include <stdio.h>
 
//分为闰年366天,平年365天去计算。
//二月:闰年(年份除以4得整数)29天,非闰年28天;
//第一季度(一月、二月、三月)闰年91天,非闰年90天 
//第二季度(四月、五月、六月)91天
//第三季度(七月、八月、九月)92天 
//第四季度(十月、十一月、十二月)92天
 
void day(int year, int mon)
//定义一个计算天数的函数
{
    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 };
    //平年月份天数
    //输出的天数
    int date = 0;
    //判断平闰:
    if (year % 4 == 0)
    //如果年份取余4等于0,即为闰
    {
        date = run[mon - 1];
        printf("%d\n", date);
    }
    else
    //如果不是闰年,执行下方语句
    {
        date = ping[mon - 1];
        printf("%d\n", date);
    }
}
 
int main()
{
    int a, b;
 
    while ((scanf("%d%d", &a, &b)) != EOF)
    //当正常输入年份和月份时,进入循环
    {
        day(a, b);
    //调用计算天数的函数,计算并输出月份的天数
    }
    return 0;
}

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
接口技术课程设计(VHDL/JAVA) 万年历 院(系)别 信息科学与电气工程学院 "一、设计内容及要求 " " " "1、使用图形用户界面。 " " " "2、实现日期与星期的查询 " "二、设计原始资料 " "1、显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查 " "询下一个月的日期。 " " " "2、定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒 " "信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 " "三、设计完成后提交的文件和图表 " "1.计算说明书部分 " "数据库设计分析 " "1. 总天数算法:首先用if语句判断定义年到输入年之间每一年是否为闰 " "年,是闰年,该年的总天数为366,否则,为365。然后判断输入的年是否为" "定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间 " "的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月" "是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算 " "出从定义年一月一日到输出年的该月一日的总天数。 " " 2. 输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为 " "星期几,若是7,则为星期日。 " "3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后 " ",把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该" "月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出" "该月的日历。 " "2.图纸部分: " "程序流程图 " " " "四、进程安排 " "1、星期一选定题目,查阅资料 " "2、星期二构思程序流程图 " "3、星期三和星期四编写且完善程序 " "4、星期五答辩 " "五、主要参考资料 " "1、Eclipse使用教程 " "2、java程序设计常用教程 " 目 录 前言 3 1需求分析 3 1.1需求分析 3 1.2功能设计 3 2.概要设计 3 2.1程序设计思路 3 2.2程序运行界面 4 2.3流程图 5 3.各模块的功能及程序说明 6 3.1.初始化组件 6 3.2.初始化数据 6 3.3.绘制程序界面 7 4.测试分析 8 5.源程序清单 10 6.课程设计体会 18 参考文献 19 摘 要 我们的实践的能力,为提高知识,可以运用了再创造,学校在2周安排,我们发出java课 程设计进行实习。 此文件的详细说明java的环境下,一个软件设计的过程,本软体是各种数据的个数统计 。 这种软件的功能,用户可一段文字输入后,软件是文字中的各类的数据的成绩为英语和 数据的数量和数字数据的数量、空白的数据的数量和它的类型的数据的数量,然后,他将 显示出来。 以下,课程设计通过解释数据是软件的统计,计划于解释了调整,并将负责等方面,还详 细介绍了此项技术的制作过程说明了作用,以及各种无法实行操作。 关键字:万年历,java,头文件 前言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发 现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。 1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言 及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效 能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解 决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java 的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重 要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工 具。 1需求分析 1.1需求分析 本程序的要求为:1.使用图形用户界面;2.本程序能够实现日期与星期的查询。 1.2功能设计 本程序要构建的万年历程序,其功能有以下几个方面: (1)通过网页形式运行,实现图形界面。 (2)能以月历形式显示日期与星期。 (3)支持用户自己输入年份,并提供月份的下拉形式菜单来选择月份。 (4)通过点击"更新"来刷新日历。 2.概要设计 2.1程序设计
### 回答1: 可以使用Python中的calendar模块来实现这个函数,具体代码如下: ```python import calendar def max_days(year, month): return calendar.monthrange(year, month)[1] ``` 其中,`calendar.monthrange(year, month)`函数返回一个元组,第一个元素为该月第一天是星期几(表示星期一,1表示星期二,以此类推),第二个元素为该月的最大日数。因此,我们只需要取出第二个元素即可。 ### 回答2: 题目要求编写一个函数,用于计算给定的年份和月份的这个月的天数。为了实现这个功能,我们需要考虑一些重要的因素,例如闰年和月份的天数。 一个闰年是指可被4整除的年份,但不能被100整除,或者可以被400整除。所以,我们首先需要判断给定的年份是否是闰年。如果是闰年,那么2月份的天数就是29天,否则就是28天。 接下来,我们需要判断给定的月份是属于31天、30天还是2月份。在这里,我们可以用一个简单的if-else结构来判断。如果该月份是1、3、5、7、8、10或12月,则为31天;如果是4、6、9或11月,则为30天;否则就是2月份。 最后,我们需要在函数中返回该月份的最大天数。以下是该函数的Python代码实现: ``` def get_max_days(year, month): # 判断是否为闰年 if ((year % 4 == 0 and year % 100 != 0) or year % 400 == 0): is_leap_year = True else: is_leap_year = False # 判断该月份的天数 if month in [1, 3, 5, 7, 8, 10, 12]: max_days = 31 elif month in [4, 6, 9, 11]: max_days = 30 elif is_leap_year: max_days = 29 else: max_days = 28 return max_days ``` 在函数中,我们首先声明了一个变量is_leap_year来存储给定年份是否是闰年,然后使用if-else结构来判断该月份的天数。最后,我们返回了该月份的最大天数。 该函数可以很方便地用于计算任意年份和月份的天数。例如,如果你要计算2022年11月的最大天数,可以调用该函数并传入参数(2022, 11)即可。 ### 回答3: 要编写一个能够计算某年某月最大天数的函数,其实原理并不难。我们知道每个月的最大天数是由月份以及年份决定的,因此我们可以通过判断月份来计算出该月的最大天数。 首先,我们需要检查输入的年份是否为闰年。闰年有一个特殊的规则,即能够被4整除但不能被100整除的年份是闰年,或者能够被400整除的年份也是闰年。如果输入的年份是闰年,则2月份的最大天数是29天,否则是28天。 接着,我们需要定义一个数组来记录每个月份的最大天数。由于不同月份的最大天数不同,因此需要分别定义12个元素分别表示1到12月的最大天数。这个数组可以在函数内部定义,也可以作为函数的参数传入。 然后,我们可以通过输入的月份来获取该月的最大天数。如果输入的月份为1、3、5、7、8、10、12月,最大天数为31天;如果是4、6、9、11月,则最大天数为30天;如果是2月,则最大天数通过前面的步骤计算得出。 下面是一个简单的函数代码示例,可以根据需要进行修改和完善: ``` def get_max_days(year, month): if year % 4 == 0 and year % 100 != 0 or year % 400 == 0: max_days_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] else: max_days_list = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] max_days = max_days_list[month - 1] return max_days ``` 这个函数接受两个参数,分别是年份和月份,返回值为该月份的最大天数。在函数内部,我们首先根据年份判断是否为闰年,并定义一个包含12个元素的最大天数列表。然后根据输入的月份获取该月份的最大天数,并返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

'Skrrapper

谢谢你的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值