c语言年月日问题思路总结 闰年非闰年每个月份的天数 解决今天是妹子出生的第多少天的问题

1.闰年非闰年每个月份的天数:

int year[2][13]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};

经观察发现:
a。2月闰年有29天,非闰年28天
b。1、3、5、7、8、10、12月份,每个月31天。
c。4,6,9,11月,每月30天
d。闰年一年有366天
e。不是闰年,一年有365天

2.闰年判断方法:

所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;

int judge(int y){if(y%400==0 || y%100!=0 && y%4==0){return 1;}return 0;
}

3.例子:

题目描述

蛤玮的妹子要过生日了,经过千挑万选,蛤玮决定给妹子买一盒水彩铅笔,然而卖多少个才合适呢.机智的蛤玮决定数一数今天是妹子出生的第多少天,然后就买那么多根铅笔.

给出蛤玮妹子的生日和今天的日期,求蛤玮一共需要买多少.
注意:生日当天算第0天.
输入

T(1<=T<=1000),表示数据组数.

每组数据一行y1,m1,d1,y2,m2,d2,其中y1,m1,d1表示妹子生日的年月日,y2,m2,d2表示蛤玮所在时空的当前天的年月日.
(1900<=y<=1000000, 1<=m<=12, 1<=d<=当月应有天数).输入保证当前天在妹子生日之后.
输出

每组数据输出一行,蛤玮要买多少根铅笔.
样例输入
2
1995 10 24 1995 10 25
1996 1 9 1996 3 7
样例输出
1
58

注意点:

1.由于数据大,容易超时,需要打表,先把x年到1900年的天数存到数组里
2.两个年份求之间的天数的方法
a。先转到同一年,y2年到1900年天数减去y1年到1900年天数,就是y1年到y2年的天数k
b。求y1年到从m1月到月底的x2;y2年从m2月到月底的天数x1
c。sum=k+x1+x2-365(或者366,根据y2年是否是闰年判断)sum几位两日期间的天数

这里写图片描述

如果后边年的月份(b)在前边年的月份(a)之后,那么从a月份到b月份的天数x=x2+x1-365
如果后边年的月份(b)在前边年的月份(a)之前,说明之前多加了一个365,最后减去就ok,说明仍然满足x=x2+x1-365


#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int sum[1000010];
int init()
{for(int i=1900;i<=1000000;i++){if(i%4==0&&i%100!=0||i%400==0)sum[i]=sum[i-1]+366;elsesum[i]+=sum[i-1]+365;}
}
int main()
{init();int t,y,m,d,y1,m1,d1,k,i;scanf("%d",&t);while(t--){scanf("%d%d%d%d%d%d",&y,&m,&d,&y1,&m1,&d1);int s=0; // 1. 1到m.d天数 for(i=0;i<m;i++){if(y%4==0&&y%100!=0||y%400==0)s+=b[i];elses+=a[i];}s+=d;if(y%4==0&&y%100!=0||y%400==0) k=366-s;//k+m.d到y年年底的天数 elsek=365-s;k+=sum[y1]-sum[y];// y到y1年的天数 for(i=0;i<m1;i++){if(y1%4==0&&y1%100!=0||y1%400==0)k+=b[i];elsek+=a[i];}k+=d1;//k+1.1到m1.d1天数if(y1%4==0&&y1%100!=0||y1%400==0)k-=366;elsek-=365;printf("%d\n",k);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

aop判断方法是否执行成功_判断图中是否有环的三种方法

0、什么是环&#xff1f;在图论中&#xff0c;环&#xff08;英语&#xff1a;cycle&#xff09;是一条只有第一个和最后一个顶点重复的非空路径。在有向图中&#xff0c;一个结点经过两种路线到达另一个结点&#xff0c;未必形成环。1、拓扑排序1.1、无向图使用拓扑排序可以判…

reverse()函数反转字符串以及任意类型数组

文章目录reverse用法1.reverse函数反转string2.reverse函数反转字符数组2.自定义reverse函数反转任意类型数组例子&#xff1a;reverse用法 1.reverse函数反转string #include <iostream> #include <algorithm> #include <string> using namespace std;int…

sap运维要做哪些工作_患上腰椎间盘突出,适合做哪些工作?不适合做哪些工作?...

腰椎间盘突出的患者&#xff0c;大多数是年轻人。年轻人生活和工作压力比较大&#xff0c;大多数人都不可能因为腰椎病完全停止工作&#xff0c;事实上也不用完全停止工作&#xff0c;我们更多地应该虑如何平衡养病和工作之间的关系&#xff0c;那我们今天就来和大家讲讲&#…

(STL,map,queue)团体队列

目录 目录题目&#xff1a;分析与解答1.队列先进先出&#xff0c;正好符合排队问题&#xff0c;所以用队列模拟2.每一个团队有一个队列&#xff0c;团队整体又形成一个队列3.每一个团队的成员和团队编号需要对应&#xff0c;因此利用map存编号为x的人所在的团队编号4.插入队&am…

bat执行exe程序_dos命令start教程,并行运行exe程序或者启动bat批处理cmd脚本

大家好&#xff0c;我是老盖&#xff0c;首先感谢观看本文&#xff0c;本篇文章做的有视频&#xff0c;视频讲述的比较详细&#xff0c;也可以看我发布的视频。今天我们学习DOS命令start这个命令&#xff0c;它可以启动一个EXE程序&#xff0c;也可以启动一个BAT批处理脚本&…

(STL,set,priority_queue)丑数

题目&#xff1a; 丑数是指不能被2,3,5以外的其他素数整除的数。把丑数从小到大排列起来&#xff0c;结果如下&#xff1a;1,2,3,4,5,6,8,9,10,12,…求第1500个丑数 分析与解答&#xff1a; 0.对于任意丑数x&#xff1a;2x&#xff0c;3x&#xff0c;5x也是丑数 1.用优先队…

数据库备份mysql_MySQL数据库备份与恢复方法

常有新手问我该怎么备份数据库&#xff0c;下面介绍3种备份数据库的方法&#xff1a;(1)备份数据库文件MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL的安装路径而定&a…

(大整数类Biginteger)大斐波数

题目 Fibonacci数列&#xff0c;定义如下&#xff1a; f(1)f(2)1 f(n)f(n-1)f(n-2) n>3。 计算第n项Fibonacci数值。 输入 输入第一行为一个整数N&#xff0c;接下来N行为整数Pi&#xff08;1<Pi<1000&#xff09;。 输出 输出为N行&#xff0c;每行为对应的…

mysql创建表的流程_MySQL Create Table怎样创建表?详解创建过程步骤

1、新建一个名为"createsql"的数据库。2、点击该数据库左侧的三角形图标&#xff0c;并显示其下面有四个列表项&#xff1a;表(Tables)和视图(Views)、存储过程(Stored Procedures)、函数(Functions)。3、右击【表(Tables)】列表项&#xff0c;并在弹出的快捷菜单中选…

(stack栈)rails

题目&#xff1a; 某城市有一个火车站&#xff0c;铁轨铺设如图所示&#xff0c;有n节车厢从A方向驶入车站&#xff0c;按进站顺序编号为1至n。你的任务是判断是否能让它们按照某种特定的顺序进入B方向的铁轨并驶出车站。为了重组车厢&#xff0c;你可以借助中转站C。这是一个…

docker 查看镜像_Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指!...

来自小洋人最HAPPY投稿一、Docker简介Docker是开源应用容器引擎&#xff0c;轻量级容器技术。基于Go语言&#xff0c;并遵循Apache2.0协议开源Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的Linux系统上&#xff0c…

(stack 解析表达式)矩阵链乘

问题: 输入n个矩阵的维度和一些矩阵链乘表达式,输出乘法的次数.如果无法进行,输出error.如果A是m*n矩阵,B是n*p的矩阵,乘法次数为m*n*p 如果A的列数不等于B的行数,则乘法无法进行. A 50*10 B 10*20 C 20*5 &#xff08;A(BC))乘法次数&#xff1a;10*20*5(BC乘法次数)50*1…

mysql和维信公众号_mysql实用指南

mysqld --verbose --help&#xff1a;可以显示 mysql 的编译配置选项&#xff0c;即功能配置描述。mysql 显示所有支持的字符集&#xff1a; SHOW CHARACTER SET;mysql 创建数据库或表的时候设置是否大小写敏感&#xff1a;CREATE DATABASE test_database CHARACTER SET u…

(链表,插入元素)破损的键盘

题目&#xff1a; 你有一个破损的键盘。键盘上的所有键都可以正常工作&#xff0c;但有时Home键或者End键会自 动按下。你并不知道键盘存在这一问题&#xff0c;而是专心地打稿子&#xff0c;甚至连显示器都没打开。当你 打开显示器之后&#xff0c;展现在你面前的是一段悲剧的…

mac 强制删除mysql_mac中如何彻底删除MySQL

使用sudo rm /etc/my.cnfsudo rm /usr/local/mysqlsudo rm -rf /usr/local/mysql*sudo rm -rf /Library/StartupItems/MySQLCOMsudo rm -rf /Library/PreferencePanes/MySQL*vim /etc/hostconfig and removed the line MYSQLCOM-YES-rm -rf ~/Library/PreferencePanes/MySQL*su…

(完全二叉树编号)小球下落

题目 有一棵二叉树&#xff0c;最大深度为D&#xff0c;且所有的叶子深度都相同。所有结点从上到下从左到右编号为1&#xff0c;2&#xff0c;3&#xff0c;…&#xff0c;2eD-1。在结点1处放一个小球&#xff0c;它会往下落。每个结点上都有一个开关&#xff0c;初始全部关闭…

python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?

公众号新增加了一个栏目&#xff0c;就是每天给大家解答一道Python常见的面试题&#xff0c;反正每天不贪多&#xff0c;一天一题&#xff0c;正好合适&#xff0c;只希望这个面试栏目&#xff0c;给那些正在准备面试的同学&#xff0c;提供一点点帮助&#xff01;小猿会从最基…

(二叉树的动态创建与bfs)树的层次遍历

题目&#xff1a; 例&#xff1a;输入一棵二叉树&#xff0c;你的任务是按从上到下&#xff0c;从左到右的顺序输出每一个节点的值。每个节点都按照从根节点到它的移动序列给出(L表示左&#xff0c;R表示右)。在输入中&#xff0c;每个节点的左括号和右括号之间没有空格&#…

windows搭建tftp服务器_Ubuntu中搭建TFTP服务器

参考&#xff1a; 在Ubuntu中搭建TFTP服务器_小拇指的脑瓜子的博客-CSDN博客_ubuntu tftp​blog.csdn.net主要步骤&#xff1a;sudo apt-get install -y xinetd tftp tftpd2. 创建文件/etc/xinetd.d/tftp&#xff0c;内容如下&#xff1a;service tftp {socket_type dgrampro…

(二叉树的遍历)Tree UVa 548

题目&#xff1a; 给一棵点带权&#xff08;权值各不相同&#xff0c;都是小于10000的正整数&#xff09;的二叉树的中序和后序遍 历&#xff0c;找一个叶子使得它到根的路径上的权和最小。如果有多解&#xff0c;该叶子本身的权应尽量小。 输入中每两行表示一棵树&#xff…