前提概述:
用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语言编写一个日期计算器相关推荐

  1. 十位数连加 c语言,用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除....

    用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除. 用C语言编写一个简易计算器可实现加减乘除,连加连减,连乖连除. 人气:435 ℃时间:2020-04-10 06:55:13 优质解答 ...

  2. 用C语言写一个日期计算器

    首先,我们应知道日期计算器包括哪些功能 1.明天的日期 2 .n天后的日期 3.两个日期之间的天数 我们先从第一个功能开始,首先创建一个日期的结构体,包括:年.月.日. struct date {in ...

  3. python输入一个正整数n求下列算式的值_C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值。,C语言 编写一个程序,输入一个正整数,求出它是几位数。...

    导航:网站首页 > C语言编写程序:输入一个正整数x和一个正整数n,求下列算式的值.,C语言 编写一个程序,输入一个正整数,求出它是几位数. C语言编写程序:输入一个正整数x和一个正整数n,求下 ...

  4. 用C语言编写一个Linux下的简单shell程序

    这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...

  5. 用java编写一个简单计算器

    java 采用java编写一个简单计算器,使用awt和swing 代码如下: import java.awt.Color; import java.awt.Font; import java.awt. ...

  6. python语言的记事本在哪_用python语言编写一个简单记事本

    看了一点python的基础教程,忍不住手就痒了,找来一个题目练一下喽. 题目:编写一个功能简单的记事本. 编写记事本就要用到GUI的功能,最常用的当然是wxpython,那么我们就用这个来写一个记事本 ...

  7. 利用android实现汇率计算器,利用python编写一个汇率计算器

    利用python编写一个汇率计算器 发布时间:2020-11-10 15:03:44 来源:亿速云 阅读:137 作者:Leah 这篇文章运用简单易懂的例子给大家介绍利用python编写一个汇率计算器 ...

  8. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)

    使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网) 一,前期准备 1,Java IDE(Eclipse)与JDK的安装与配置 jdk-15.0.1-免配置路径版 提取码:earu 免 ...

  9. C语言编写一个四位数的和,c语言编写一段程序,输入一个四位数,输出各位数字的和...

    用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...

  10. c语言用while实现输出加法口诀表,「加法口诀」C语言编写一个加法口诀表 - 金橙教程网...

    加法口诀 C语言编写一个加法口诀表 #include void main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ printf( ...

最新文章

  1. hibernate mysql annotation_hibernate学习笔记03-- hibernate + mysql + Annotation
  2. 使用 LocalDateTime 而不是 Date
  3. 资源共享冲突问题概述
  4. SpringBoot中使用thymeleaf模板时select下拉框怎样查询数据库赋值
  5. RadioWar_RFID_LiveCD_Alpha330
  6. 字符串题目 1 --------判断两个字符串是否为旋转词
  7. 责任链模式在Android中的应用
  8. 树莓派C语言点灯,树莓派3 b GPIO 点亮小灯泡
  9. 搜狗营收创新高,股价却跌7%,对话王·玄奘·小川
  10. Shell 脚本来监控 Linux 系统的内存
  11. 如何保护开发人员工作站
  12. 利用opencv中的级联分类器进行人脸检測-opencv学习(1)
  13. Varnish的基本应用详解
  14. 国家测绘局制定的测绘与地理信息行业标准统计 (20110706)
  15. ping源码分析(超详细,多图,带背景分析)
  16. Yate for Mac音乐标签管理工具
  17. 7-5 有理数比较 (10 分)
  18. 圆跳动基础知识(几何公差)
  19. C#窗体Winform,如何嵌入图片添加图片,使用图片资源?
  20. 量子计算机生命,量子计算机上量子人工生命模型 - 酷酷UFO

热门文章

  1. C语言练习-还原算术表达式
  2. linux一键烧写应用程序工具--自制
  3. 适合c语言初学者的刷题网站
  4. 服务器网卡信息BIOS中设置,bios设置如何关闭网卡
  5. java tls_Java客户端中具有SNI的TLS
  6. 合同计算问题的计算公式与计算方法
  7. 项目管理知识体系指南 (六)
  8. 知识存储之Apache Jena
  9. HTML+CSS练习——实现京东登录静态页面
  10. 分门别类刷leetcode——贪心算法(C++实现)