博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第十六周项目4 - 日期结构体(生日相差几天)
阅读量:6573 次
发布时间:2019-06-24

本文共 1924 字,大约阅读时间需要 6 分钟。

定义一个结构体变量(包括年、月、日),输入两个人的生日,求出他们相差多少天。

/** Copyright (c) 2014,烟台大学计算机学院* All right reserved.* 作者:邵帅* 文件:demo.cpp* 完成时间:2014年12月17日* 版本号:v1.0*/#include 
using namespace std;struct Date{    int year;    int month;    int day;};bool year(int y);int main(){    int day(int y, int m, int d);    Date date;    int days_1,days_2,days;    int n,allday1,allday2;    cout<<"请输入第一个人的 year,month,day:";    cin>>date.year>>date.month>>date.day;    allday1=day(date.year, date.month, date.day);    cout<<"请输入第二个人的 year,month,day:";    cin>>date.year>>date.month>>date.day;    allday2=day(date.year, date.month, date.day);    days=allday1-allday2;    if (days<0)        days=-days;    cout<<"他们相差"<
<<"天。";    return 0;}int day(int y, int m, int d){    int sum;    int i=1,alldays=0;    while (i<=y)    {        if (year(i))            alldays+=366;        else            alldays+=365;        i++;    }    switch (m)    {    case 1:        sum = d;        break;    case 2:        sum = d + 31;        break;    case 3:        sum =  d + 59;        break;    case 4:        sum =  d + 90;        break;    case 5:        sum = d + 120;        break;    case 6:        sum =  d + 151;        break;    case 7:        sum =  d + 181;        break;    case 8:        sum =  d + 212;        break;    case 9:        sum =  d + 243;        break;    case 10:        sum =  d + 273;        break;    case 11:        sum = d + 304;        break;    case 12:        sum =  d + 334;        break;    }    if (year(y))    {        if (m>2)            sum--;    }    alldays+=sum;    return alldays;}bool year(int y){    if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0 && y % 100 == 0))        return true;    else        return false;}
运行结果:

第一次提交时的代码有点问题,只能计算同年或者相差一年的时间差,一开始想与格林威治标准时间:1970年1月1日做对比,还是失败。后来想出来一个方法:算出他们与1年1月1日的天数再相减,虽然效率很低,但是实在是想不到更好的方法,等待解决。

@ Mayuko

转载于:https://www.cnblogs.com/mayuko/p/4567571.html

你可能感兴趣的文章
多行文本框拖动问题解决
查看>>
闲谈校园招聘
查看>>
.net面向对象学习笔记(二)
查看>>
作为前端Web开发者,这12条基本命令不可不会
查看>>
log4net用法实例
查看>>
Vim编辑器的常用快捷键.
查看>>
[LeetCode] Binary Tree Postorder Traversal 二叉树的后序遍历
查看>>
Silverlight实用窍门系列:74.Silverlight使用Perst数据库Demo
查看>>
Net中的AOP系列之《方法执行前后——边界切面》
查看>>
c#水晶报表的进一步功能和使用
查看>>
2014-04-03研究笔记整理
查看>>
Stop单个Coroutine
查看>>
lemon oa前端页面——由user-base-list谈项目组织
查看>>
PHP命名空间带来的干扰
查看>>
玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
查看>>
Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...
查看>>
Android 查看內存使用
查看>>
手机视频监控系统小结
查看>>
常见排序算法分析
查看>>
[安卓] 2、使用2中方法做按钮监听和图片按钮使用
查看>>