首页 > 其他分享 >求两天相距的天数

求两天相距的天数

时间:2024-04-24 16:55:05浏览次数:16  
标签:30 两天 int 天数 31 相距 month year day

输入某两天的年月日,输出这两天的相距多少天。

解:计算两个日期到后一个日期最后一天的天数,相减即可。

 1 #include<stdio.h>
 2 
 3 #define LEAPYEAR 366 //闰年
 4 #define COMMONYEAR 365 //平年
 6 
 7 int month_day[14] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
 8 
 9 int isLeapyear(int year)
10 {
11     return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))? 1 : 0;
12 }
13 
14 int get_day(int year, int month, int day)
15 {
16     int res_postyear_day = 0;
17     if (!isLeapyear(year)) {
18         for (int i = month + 1; i <= 12; i++)
19             res_postyear_day += month_day[i];
20         res_postyear_day += month_day[month] - day + 1;
21     }
22     else {
23         if (month <= 2) month_day[2] = 29;
24         for (int i = month + 1; i <= 12; i++)
25         {
26             res_postyear_day += month_day[i];
27         }
28         res_postyear_day += month_day[month] - day + 1;
29     }
30     return res_postyear_day;
31 }
32 
33 
34 
35 int main() {
36 
37     int pre_year, pre_month, pre_day;
38     int post_year, post_month, post_day;
39     printf("输入第一个日期:");
40     scanf("%d%d%d", &pre_year, &pre_month, &pre_day);
41     printf("输入第二个日期:");
42     scanf("%d%d%d", &post_year, &post_month, &post_day);
43     
44     int post_res = get_day(post_year, post_month, post_day);//求出后一个日期距该年底的天数
45     int pre_res = get_day(pre_year, pre_month, pre_day);//求出前一个日期距该年底的天数
46     
47     int ans=0;
48     if (pre_year == post_year) ans = pre_res - post_res;//如果是同一年,直接相减
//如果中间有相隔年份,按整年计算 49 else { 50 for (int i = pre_year + 1; i <= post_year; i++) 51 { 52 if (isLeapyear(i))pre_res += LEAPYEAR; 53 else pre_res += COMMONYEAR; 54 } 55 ans = pre_res - post_res; 56 } 57 58 printf("两个日期相差:%d 天", ans); 59 60 return 0; 61 }

 

标签:30,两天,int,天数,31,相距,month,year,day
From: https://www.cnblogs.com/Uiney117/p/18155856

相关文章

  • 月的天数
    大小月_百度百科(baidu.com)2月:2月是特殊的平年的话,2月的天数为28,闰年的话天数为29天大月:1,3,5,7,8,10,12为每月都是31天,被称为大月小月:4,6,9,11每月的都是30天,被称为小月闰年的判断标准:能被4整除并且还不能被100整除或者能被400整除的为闰年,否则为平年程序为:day/4=......
  • 获取两个日期yyyy-MM-dd之间相差的天数
    Java8中的日期时间API是考虑了闰年和平年的特残情况的。在这个API中,LocalDate类表示日期,ChronoUnit.DAYS.between()方法计算两个日期之间的天数差异时会考虑闰年和平年的影响。importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;/***@authorXiSoil*/......
  • 洛谷B3835 [GESP202303 一级] 每月天数
    这道题是让我们输出给定的月份有多少天#include<bits/stdc++.h>usingnamespacestd;intmain(){ intyear,month;cin>>year>>month;if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){cout<<31;......
  • 巧用Excel计算年份间天数差值
    0.问题1.题解1.1普通思路如果正常计算需要考虑到闰年的计算,然后计算出总天数/7得到总周数(有可能是个小数,多出来的天数),之后还要知晓开始时间和结束时间是周几,要不要多计算星期一1.2使用Excel首先在开头两个单元格周输入时间,然后在第三个单元格直接输入=,然后分别选......
  • JS 日期计算 天数加减、月数加减
    JS日期计算天数加减、月数加减addDays(date,days){//给指定日期增加天数if(!days){returndate;}letdateArr=date.split('');date=newDate(newDate(date).setDate(newDate(date).getDate()+days));varyear=date.getFu......
  • c语言:从键盘输入任意年月,输出该年月的天数(用switch语句完成)
    1.switch语句(1)switch是c语言的关键字,switch()后面使用花括号括起来的部分称为switch语句体。(2)紧跟在switch后一对圆括号中的表达式可以是整形表达式,以及后面的将要学习的字符型表达式等。表达式两边的一对括号不能省略。switch()(3)case也是关键字,与其后面的常量表达式合称cas......
  • 捏妈妈的,学了两天的node.js才学到express,之前白雪了呗!
    Express的基本使用1、老样子,先导入constexpress=require(‘express’)2、然后创建一个服务器constapp=express()3、启动服务器app.listen(80,()=>{console.log('expressserverrunningathttp://127.0.0.1') }) 下面我们继续学习用法监听Get请求:可以使用app.g......
  • 怎么把spark中的时间转换成天数
    目录怎么把Spark中的时间转换成天数1.创建SparkDataFrame2.将时间转换成天数3.结果展示数据准备和DataFrame创建时间转换成天数结果展示SparkDataFrame特点和优势:创建DataFrame:DataFrame操作:怎么把Spark中的时间转换成天数在Spark中,处理时间数据时经常需要......
  • 手机备忘录隐藏功能:生日纪念日重要日子倒计时天数和提醒
    在日常使用手机时,我们经常会用到备忘录、便签或笔记等记事工具来记录生活的点点滴滴,无论是购物清单、工作任务还是学习笔记。然而,你可能不知道,手机备忘录中其实隐藏着一些非常实用的功能,比如记录生日、纪念日、重要日子,并设置日期提醒,同时还能实时显示倒计时天数。以敬业签这款手......
  • 统计两个日期之间的工作日天数
    一、目的为统计员工在职期间上班多少天,需要计算入职日期-离职日期之间的工作日天数。二、对员工的人力数据进行处理1、确保入职日期、离职日期都是date格式,非string、timestamp格式;2、新建文本类型计算字段,sequence(入职日期,离职日期)返回具体日期的数组A三、对节假日数据表......