最近做了几次模拟考试,对于求月天数这个题目有了更深一点的理解。

这个题的题目基本就是让用户输入年份和月份,给出该月有多少天。

对于这个题,首先就要考虑年份的问题,因为闰年和非闰年在二月是有一点不同的,所以要判断输入的年份是否为闰年。

int IsLeapYear(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}

再其次就是考虑月份了,这是可以用switch 选择语句。

int MonthDay(int year,int month)
{
int day=0;
if(year>0)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
case 2:
day=28+IsLeapYear(year);
break;
default:
day=0;
}
}
return day;
}

完整代码:

#include <stdio.h>

int IsLeapYear(int year);
int MonthDay(int year,int month);

int main()
{
int year,month;
scanf("%d %d",&year,&month);
printf("%d",MonthDay(year,month));
return 0;
}

int IsLeapYear(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
{
return 1;
}
else
{
return 0;
}
}

int MonthDay(int year,int month)
{
int day=0;
if(year>0)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
day=31;
break;
case 4:
case 6:
case 9:
case 11:
day=30;
break;
case 2:
day=28+IsLeapYear(year);
break;
default:
day=0;
}
}
return day;
}

PTA---求月天数的更多相关文章

  1. C/C++输入两个任意日期求相隔天数

    将两个日期转换成与一个指定日期(例1970-01-01)之间的差然后计算 思路: 两个日期相隔天数的计算,首先可以将两个日期转换成time_t(从指定日期至1970年1月1日0时0分0秒相隔的秒数), ...

  2. PTA——求n以内k个质数和

    PTA 7-51 求n以内最大的k个素数以及它们的和 #include<stdio.h> #include<math.h> int isPrime(int n); int ma ...

  3. 时间插件,js格式化,js某月天数,js某月最后一天日期

    //时间格式化 Date.prototype.format = function(fmt) { var o = { "M+": this.getMonth() + 1, //月份 ...

  4. Apex_2. LiveBos两个时间求相差天数、历时

    (1)获取两个时间相差天数(没有上午下午区分) var d1=ABS_DATESTRING(FStartTime,'yyyy/MM/dd'); var d2=ABS_DATESTRING(FEndTi ...

  5. C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的计算(转)

    /// 当前月有多少天 /// </summary> /// <param name="y"></param> /// <param na ...

  6. PTA 求二叉树的深度

    6-7 求二叉树的深度 (6 分)   本题要求实现一个函数,可返回二叉树的深度. 函数接口定义: int Depth(BiTree T); T是二叉树树根指针,函数Depth返回二叉树的深度,若树为 ...

  7. PTA 求链表的倒数第m个元素

    6-7 求链表的倒数第m个元素 (20 分)   请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>)个元素. 函数接口定义: ElementType ...

  8. PTA 求链式表的表长

    6-1 求链式表的表长 (10 分)   本题要求实现一个函数,求链式表的表长. 函数接口定义: int Length( List L ); 其中List结构定义如下: typedef struct ...

  9. linq根据两个时间求出天数

    对于在Linq To Entity里使用日期函数需要DbFunctions里的扩展方法,而不能使用.net里的日期函数,因为linq的代码会被翻译成SQL发到数据库端,如你的.net方法对于数据库是不 ...

  10. SQL Server 统计某个月周末的天数

    ---注意:这里统计的周末包括周5,周6,但不包括周日ALTER FUNCTION [dbo].[GetWeekDaysByMonth] ( @Year INT, @Month INT, @Day I ...

随机推荐

  1. tempdb大量闩锁等待问题分析

    背景 客户业务系统升级后,高峰期运行缓慢,在SQL专家云上看到数据库出现严重等待,需要分析原因并紧急处理. 现象 登录到SQL专家云中,进入实时可视化页面,在活动会话里面看到有大量资源等待的会话.   ...

  2. [cocos2d-x]飞机大战 遇到的bug和总结(一)

    第一点: Sequence* sequence=Sequence::create(actionMove, actionFinished,NULL); create方法的最后必须加上NULL,不然会报出 ...

  3. Linux 驱动像单片机一样读取一帧dmx512串口数据

    硬件全志R528 目标:实现Linux 读取一帧dmx512串口数据. 问题分析:因为串口数据量太大,帧与帧之间的间隔太小.通过Linux自带的读取函数方法无法获取到 帧头和帧尾,读取到的数据都是缓存 ...

  4. Codeforces Round #845 (Div. 2) and ByteRace 2023 A-D

    Codeforces Round #845 (Div. 2) and ByteRace 2023 A-D A. Everybody Likes Good Arrays! 题意:对给定数组进行操作:删除 ...

  5. 最好用的在线图片压缩工具——TinyPNG

    前言 不知道大家在写博客或者工作时有没有这种烦恼呢?想要上传某张图片,但却因为图片文件过大而导致无法上传.这时你可能会去百度搜索关于图片压缩的软件,但往往下载的软件都是那种"垃圾软件&quo ...

  6. Java后台如何接收与处理JSON类型数据

    项目开发中偶尔会使用到某个为JSON类型的字段,一个字段中又包含多个其他的字段. 这种设计方式是根据实际需要来进行处理的,比如规则可能包含多条,每一条规则又包含 多个字段:再比如一些特殊的应用场景如标 ...

  7. MySQL-SQL语法、字段类型

    1.字符编码与配置文件 1.\s:查看当前MySQL相关信息:当前用户.版本.编码.端口号. """ Server characterset.Db characterse ...

  8. 可视化的容器镜像的图形管理工具Portainer【强烈推荐】

    Portainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境. 而且完全免费,基于容器化的安装方式,方便高效部署. 官方站点:https:// ...

  9. Spring Boot整合Redis-CRUD

    Springboot整合redis spring Data Redis 操作Redis 1.pom.xml <?xml version="1.0" encoding=&quo ...

  10. Zstack使用经验系列1-安装的网络配置

    https://www.zstack.io/help/product_manuals/maintenance_manual/4.html 在官网上从这里有详细的安装,读者可以从上面链接开始起步装起来. ...