牛客网 HJ73 计算日期到天数转换

2024-02-19 22:12

本文主要是介绍牛客网 HJ73 计算日期到天数转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:

思路:将日期转换为天数需要注意的是

1.这年是不是闰年(这关乎到2月是29天还是28天)

2.是大月还是小月

答案:

#include <stdio.h>
#include<assert.h>
int runnian(int year)   //判断是否是闰年
{int res = 0;    //默认为假(不是闰年)if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))   //如果是闰年{res = 1;    //为真}return res;   //返回真假值
}
int month(int mon, int year)   //计算天数
{int i = 0;int sum = 0;int t = runnian(year);   //判断这一年是否是闰年的真假值赋值给tfor (i = 1; i < mon; i++)   //计算输入月数之前的所有月数的天数和{if (i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)  //如果是大月{sum += 31;   }else if (t == 1 && i == 2)   //如果是闰年的2月{sum += 29;}else if (t == 0 && i == 2)   //如果不是闰年的2月{sum += 28;}else if (i == 4 || i == 6 || i == 9 || i == 11)   //如果是小月{sum += 30;}}return sum;   //返回之前月份的所有天数和
}
int main()
{int year = 0, mon = 0, day = 0;scanf("%d%d%d", &year, &mon, &day);assert(year >= 1000 && mon <= 12 && day <= 31);   //判断是否符合题目要求范围int sum = 0;sum = month(mon, year) + day;   //将之前月份的天数和加上本月的日期就是这一年的第几天printf("%d\n", sum);   return 0;
}

知识点:

assert()

assert是断言,包含的头文件是<assert.h>,其用法是判断()中的是否成立,如果成立就如果注释一样,不影响其他代码的运行,如果不成立就会直接跳出警告(会提醒不满足assert并且显示该assert在代码中的位置),中止运行。属于辅助程序员检查的一种方式,可用来避免出现野指针等一系列问题。

如果检查完后发现assert里面的表达式已经不可能再出错了,就可以关闭assert(使用assert会增加程序运行时间),在#include<assert.h>上面一行添加#define NDEBUG即可关闭assert

这篇关于牛客网 HJ73 计算日期到天数转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/726126

相关文章

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <