用c语言编写一个日期计算器
前提概述:
用c语言代码编写一个日期计算器思路:
1、首先我要确定二个年份之间天数(当成满年来看)。j1值
2、然后我们再来确定月份:
(第一种是前年份的月份小于后年份的月份)那我们就先不看二个年份的本月份(计算二个年份除本月外还剩月份的天数),然后我们再加上前月份剩的天数和后月份过的天数。(相加)(第一种j2值)
(第二种是前年份的月份大于后年份的月份)我们还是求出二个月份之间的天数,然后我们还是再加上前月份剩的天数和后月份过的天数。!但我们“注意”这些天数是多余出来的天数,所以等下我们要处理这些多余天数(减去)。(第二种j2值)
(第三种是前年份的月份等于后年份的月份)我们就进行第三步。
3、我们再注意考虑二个年份之间的本月关系(也就相当于前年份的月份等于后年份的月份的天数关系):
(第一种是前月份的日号小于或等于后年份的日号)我们算出二者之间相差的天数,加到我们确定天数中。(相加)(第三种j2值)
(第二种是前月份的日号大于后年份的日号)我们也算出二者之间相差的天数,只不过这也是多余天数,等下我们要减去。(减去)((第四种j*2值))
代码为:
#include<stdio.h>
#include<stdlib.h>
//先确定一个关于日期的结构体
typedef struct Date
{
int year;int yue;int r;}Data;
//实现计算的函数
int Cha_zhi(Data s1,Data s2)
{
int i1,i2,i3,j1,j2=0;/*定义起始天数为0天*/int sum; //先计算年份j1=s2.year-s1.year; //找二个年份之间月份的天数(不包括二个年份的本月) if(s1.yue>s2.yue) {i2=s1.yue;i3=s2.yue;}else {i2=s2.yue;i3=s1.yue;} for(i2=i2+1;i2<i3;i2++) { switch(i2) { case 1: j2=j2+31;break; case 2: j2=j2+28;break; case 3: j2=j2+31;break; case 4: j2=j2+30;break; case 5: j2=j2+31;break; case 6: j2=j2+30;break; case 7: j2=j2+31;break; case 8: j2=j2+31;break; case 9: j2=j2+30;break; case 10: j2=j2+31;break; case 11: j2=j2+30;break; case 12: j2=j2+31;break; }} //根据本月份来算之间的天数 if(s1.yue==s2.yue) {if(s1.r<=s2.r) {j2=j2+(s2.r-s1.r);} else {j2=j2+(s1.r-s2.r);//多余天数} }else { switch(s1.yue) { case 1: j2=j2+(31-s1.r);break; case 2: j2=j2+(28-s1.r);break; case 3: j2=j2+(31-s1.r);break; case 4: j2=j2+(30-s1.r);break; case 5: j2=j2+(31-s1.r);break; case 6: j2=j2+(30-s1.r);break; case 7: j2=j2+(31-s1.r);break; case 8: j2=j2+(31-s1.r);break; case 9: j2=j2+(30-s1.r);break; case 10: j2=j2+(31-s1.r);break; case 11: j2=j2+(30-s1.r);break; case 12: j2=j2+(31-s1.r);break; }j2=j2+s2.r;//加上下年份的过天数 } //根据日期大小来算总天数 if(s1.yue<=s2.yue&&s1.r<=s2.r)//满了一年sum=j1*365+j2; if(s1.yue>s2.yue||s1.r>s2.r) //没满一年 sum=j1*365-j2; //存在闰年 if(s1.yue%4==0&&s1.yue<=2) sum++; for(i1=s1.year+1;i1<s2.year;i1++){ if(i1%4==0) sum++; }return sum;}//编写主函数int main(){ struct Date s1,s2; int data,hour; printf("******计算日期的计算器工具******\n");printf("输入第一个日期"); printf("\n"); printf("输入该年份:"); scanf("%d",&s1.year);printf("输入该月份:"); scanf("%d",&s1.yue); printf("输入该日份:");scanf("%d",&s1.r); printf("第一个时间为:%d年%d月%d日。\n",s1.year,s1.yue,s1.r);printf("输入第二个日期"); printf("\n"); printf("输入该年份:"); scanf("%d",&s2.year); printf("输入该月份:"); scanf("%d",&s2.yue);printf("输入该日份:");scanf("%d",&s2.r); printf("第二个时间为:%d年%d月%d日。\n",s2.year,s2.yue,s2.r); printf("计算这二个时间的差值\n");data=Cha_zhi(s1,s2);hour=data*24;printf("这二个年份相差的天数为:");printf("%d\n",data);printf("这二个年份相差的小时为:"); printf("%d\n",hour);printf("提示:如果你还想算分钟,秒钟等。。可以继续插入你想要的需求代码");return 0;}********
用c语言编写一个日期计算器相关推荐
- 十位数连加 c语言,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....
用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除. 用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除. 人气:435 ℃时间:2020-04-10 06:55:13 优质解答 ...
- 用C语言写一个日期计算器
首先,我们应知道日期计算器包括哪些功能 1.明天的日期 2 .n天后的日期 3.两个日期之间的天数 我们先从第一个功能开始,首先创建一个日期的结构体,包括:年.月.日. struct date {in ...
- python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...
导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...
- 用C语言编写一个Linux下的简单shell程序
这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...
- 用java编写一个简单计算器
java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...
- python语言的记事本在哪_用python语言编写一个简单记事本
看了一点python的基础教程,忍不住手就痒了,找来一个题目练一下喽. 题目:编写一个功能简单的记事本. 编写记事本就要用到GUI的功能,最常用的当然是wxpython,那么我们就用这个来写一个记事本 ...
- 利用android实现汇率计算器,利用python编写一个汇率计算器
利用python编写一个汇率计算器 发布时间:2020-11-10 15:03:44 来源:亿速云 阅读:137 作者:Leah 这篇文章运用简单易懂的例子给大家介绍利用python编写一个汇率计算器 ...
- 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置 jdk-15.0.1-免配置路径版 提取码:earu 免 ...
- C语言编写一个四位数的和,c语言编写一段程序,输入一个四位数,输出各位数字的和...
用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...
- c语言用while实现输出加法口诀表,「加法口诀」C语言编写一个加法口诀表 - 金橙教程网...
加法口诀 C语言编写一个加法口诀表 #include void main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ printf( ...
最新文章
- hibernate mysql annotation_hibernate学习笔记03-- hibernate + mysql + Annotation
- 使用 LocalDateTime 而不是 Date
- 资源共享冲突问题概述
- SpringBoot中使用thymeleaf模板时select下拉框怎样查询数据库赋值
- RadioWar_RFID_LiveCD_Alpha330
- 字符串题目 1 --------判断两个字符串是否为旋转词
- 责任链模式在Android中的应用
- 树莓派C语言点灯,树莓派3 b GPIO 点亮小灯泡
- 搜狗营收创新高,股价却跌7%,对话王·玄奘·小川
- Shell 脚本来监控 Linux 系统的内存
- 如何保护开发人员工作站
- 利用opencv中的级联分类器进行人脸检測-opencv学习(1)
- Varnish的基本应用详解
- 国家测绘局制定的测绘与地理信息行业标准统计 (20110706)
- ping源码分析(超详细,多图,带背景分析)
- Yate for Mac音乐标签管理工具
- 7-5 有理数比较 (10 分)
- 圆跳动基础知识(几何公差)
- C#窗体Winform,如何嵌入图片添加图片,使用图片资源?
- 量子计算机生命,量子计算机上量子人工生命模型 - 酷酷UFO