IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 日期计算C语言 -> 正文阅读

[C++知识库]日期计算C语言

用C语言计算日期可实现日期加减

#include"stdio.h"
#include <stdlib.h>
//闰年判定?
int year_judge(int year){
?? ?int leap;
?? ?if(year%400==0||(year%4==0&&year%100!=0)){
?? ??? ?leap = 1;
?? ?}
?? ?else{
?? ??? ?leap = 0;
?? ?}
?? ?return leap;
}
//时间累加运算?
int time_add(int x,int y,int z,int add)
{
?? ?int i,j,k,leap,week;
?? ?int add_number=add;
?? ?j = y;
?? ?i = x;
?? ?for(k=z;add_number>0;k++,add_number--)
?? ?{
?? ??? ?leap=year_judge(x);
?? ??? ?if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
?? ??? ?{
?? ??? ??? ?if(k==32)
?? ??? ??? ?{
?? ??? ??? ??? ?k=1;
?? ??? ??? ??? ?j+=1;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(j==4||j==6||j==9||j==11)
?? ??? ?{
?? ??? ??? ?if(k==31)
?? ??? ??? ?{
?? ??? ??? ??? ?k=1;
?? ??? ??? ??? ?j+=1;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(j==2)
?? ??? ?{
?? ??? ??? ?if(leap)
?? ??? ??? ?{
?? ??? ??? ??? ?if(k==30)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?k=1;
?? ??? ??? ??? ??? ?j+=1;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?if(k==29)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?k=1;
?? ??? ??? ??? ??? ?j+=1;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(j==13)
?? ??? ?{
?? ??? ??? ?j=1;
?? ??? ??? ?i+=1;
?? ??? ?}
?? ?}
?? ??? ?printf("得出结果为:%d年%d月%d日\n",i,j,k);
?? ??? ?week=week_compute(i,j,k);
?? ??? ?week_write(week);
}
int time_sub(int x,int y,int z,int a,int b,int c)
{
?? ?int i,j,k,leap,week;
?? ?int sub_number=0;
?? ?leap=year_judge(x);
?? ?j = y;
?? ?i = x;
?? ?for(k=z;i<a||j<b||k<c;k++,sub_number++)
?? ?{
?? ??? ?if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
?? ??? ?{
?? ??? ??? ?if(k==32)
?? ??? ??? ?{
?? ??? ??? ??? ?k=1;
?? ??? ??? ??? ?j+=1;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(j==4||j==6||j==9||j==11)
?? ??? ?{
?? ??? ??? ?if(k==31)
?? ??? ??? ?{
?? ??? ??? ??? ?k=1;
?? ??? ??? ??? ?j+=1;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(j==2)
?? ??? ?{
?? ??? ??? ?if(leap)
?? ??? ??? ?{
?? ??? ??? ??? ?if(k==30)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?k=1;
?? ??? ??? ??? ??? ?j+=1;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?if(k==29)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?k=1;
?? ??? ??? ??? ??? ?j+=1;
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(j==13)
?? ??? ?{
?? ??? ??? ?j=1;
?? ??? ??? ?i+=1;
?? ??? ?}
?? ?}if(sub_number!=0)
?? ?{
?? ??? ?return sub_number;
?? ?}else{
?? ??? ?printf("时间错误\n");
?? ?}
}
//星期计算?
int week_compute(int y,int m,int d)
{
?? ?int k=0;?
?? ?k=1+(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
?? ?return k;
}
int week_write(int week)
{
?? ?printf("星期");?
?? ?switch(week)
?? ?{
?? ??? ?case 1:
?? ??? ??? ?printf("一\n");
?? ??? ??? ?break;
?? ??? ?case 2:
?? ??? ??? ?printf("二\n");
?? ??? ??? ?break;
?? ??? ?case 3:
?? ??? ??? ?printf("三\n");
?? ??? ??? ?break;
?? ??? ?case 4:
?? ??? ??? ?printf("四\n");
?? ??? ??? ?break;
?? ??? ?case 5:
?? ??? ??? ?printf("五\n");
?? ??? ??? ?break;
?? ??? ?case 6:
?? ??? ??? ?printf("六\n");
?? ??? ??? ?break;
?? ??? ?case 7:
?? ??? ??? ?printf("日\n");
?? ??? ??? ?break;
?? ?}
?}?
int time_judge(int x,int y,int z){
?? ?int leap=year_judge(x);
?? ?if (x>9999||x<1582)
?? ?{
?? ??? ?printf("时间错误\n");
?? ??? ?return 0;
?? ?}
?? ?else if (x==1582)
?? ?{
?? ??? ?if (y<10||y>12)
?? ??? ?{
?? ??? ??? ?printf("时间错误\n");
?? ??? ??? ?exit(0);
?? ??? ?}
?? ??? ?else if(y==10)
?? ??? ?{
?? ??? ??? ?if (z<15||z>31)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("时间错误\n");
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?if (y<1||y>12)
?? ?{
?? ??? ?printf("时间错误\n");
?? ??? ?return 0;
?? ?}
?? ?else if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)
?? ?{
?? ??? ?if(z<1||z>31)
?? ??? ?{
?? ??? ??? ?printf("时间错误\n");
?? ??? ??? ?return 0;
?? ??? ?}
?? ?}
?? ?else if(y==4||y==6||y==9||y==11)
?? ?{
?? ??? ?if(z<1||z>30)
?? ??? ?{
?? ??? ??? ?printf("时间错误\n");
?? ??? ??? ?return 0;
?? ??? ?}
?? ?}
?? ?else if(y==2)
?? ?{
?? ??? ?if(leap)
?? ??? ?{
?? ??? ??? ?if(z<1||z>29)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("时间错误\n");
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?if(z<1||z>28)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("时间错误\n");
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?return 1;?
}
//主函数?
int main(int argc, const char *argv[])
{
?? ?int o,p,q,week;
?? ?int year,month,day,add,judge;
?? ?int year_s,month_s,day_s;?
?? ?printf("****************************************************\n");
?? ?printf("* ? ? 1.日期加法 ? ? 2.日期减法 ? ? 0.退 ? ?出 ? ? *\n");?
?? ?printf("* ? ? ?//本程序仅支持1582年10月15日之后的计算 ? ? ?*\n");?
?? ?printf("****************************************************\n");
?? ?while(1){
?? ?printf("功能选择: ");
?? ?scanf("%d",&o);
?? ?switch(o)
?? ?{
?? ?case 1:?
?? ??? ?printf("输入被加年: ");
?? ??? ?scanf("%d",&year);
?? ??? ?printf("输入被加月: ");
?? ??? ?scanf("%d",&month);
?? ??? ?printf("输入被加日: ");
?? ??? ?scanf("%d",&day);
?? ??? ?p=time_judge(year,month,day);
?? ??? ?if(p==0){
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?printf("输入被加日期为:%d年%d月%d日",year,month,day);?
?? ??? ?week=week_compute(year,month,day);
?? ??? ?week_write(week);
?? ??? ?printf("输入增加天数: ");
?? ??? ?scanf("%d",&add);
?? ??? ?time_add(year,month,day,add);
?? ??? ?break;
?? ?case 2:?
?? ??? ?printf("输入被减年: ");
?? ??? ?scanf("%d",&year);
?? ??? ?printf("输入被减月: ");
?? ??? ?scanf("%d",&month);
?? ??? ?printf("输入被减日: ");
?? ??? ?scanf("%d",&day);
?? ??? ?p=time_judge(year,month,day);
?? ??? ?if(p==0){
?? ??? ??? ?break;
?? ??? ?}?
?? ??? ?printf("输入被减日期为:%d年%d月%d日",year,month,day);?
?? ??? ?week=week_compute(year,month,day);
?? ??? ?week_write(week);
?? ??? ?printf("输入减法年: ");
?? ??? ?scanf("%d",&year_s);
?? ??? ?printf("输入减法月: ");
?? ??? ?scanf("%d",&month_s);
?? ??? ?printf("输入减法日: ");
?? ??? ?scanf("%d",&day_s);
?? ??? ?p=time_judge(year_s,month_s,day_s);
?? ??? ?if(p==0){
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?printf("输入减法日期为:%d年%d月%d日",year_s,month_s,day_s);?
?? ??? ?week=week_compute(year_s,month_s,day_s);
?? ??? ?week_write(week);
?? ??? ?q=time_sub(year,month,day,year_s,month_s,day_s);
?? ??? ?printf("两者相距%d天\n",q);
?? ??? ?break;
?? ?case 0:
?? ??? ?exit(0);
?? ?default:
?? ??? ?printf("功能错误\n");
?? ?}
?? ?}
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:01:53  更:2021-07-27 16:04:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/29 10:29:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码