两个日期之间的天数--【编程珠玑】
被csdn各种大牛打击的...继续加油...
今天翻了下《编程珠玑》,其实这本书感觉对自己还是有点深,吃不透啊。
看到一题,有一小问是给定两个日子,计算这两个日子的天数;
碰巧前几天做web作业也有差不多这题的,不过那一题直接调用系统函数的,两个日期一减/1000/60/60/24就是天数了;
c中还真不知道有没有这样强大的函数,如果有,各位告诉我一下;
说一下我实现的吧,给了两个日期,分别求出由公元元年开始过的天数,然后相减,即是相差的天数(正负不计较,大家都明白的);
/**********
* 2013-12-30
* _Luffy
* http://blog.csdn.net/xjm199
***********/
#include <stdio.h>
int isleapyear(int year) //是否是闰年
{
return ((year % 4 == 0 && year % 100 != 0)|| year % 400 == 0);
}
int sum(int year, int month, int day)
{
int mon[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int sum = (year - 1) * 365; //自公元1年来的天数
int i;
sum += (year - 1) / 4 + 1; //能被4整除的都加上
sum -= (year - 1) / 100 + 1; //其中被100整除的不是闰年
sum += (year - 1) / 400 + 1; //实际上能被400整除的即为闰年
for(i = 0; i < month - 1; ++i) //将本年的剩下的整月加上
sum += mon[i];
if(isleapyear(year) == 1 && month > 2) //本年是否闰2月
++sum;
sum += day; //本月的日子加上
return sum;
}
int main()
{
printf("%d\n", sum(2013, 11, 1) - sum(2013, 9, 30));
return 0;
}
sum中求得的就是由公元元年以来的日子;
结果如下:
32
Process returned 0 (0x0) execution time : 0.331 s
Press any key to continue.
小工程可见:http://download.csdn.net/detail/xjm199/6790267
欢迎各位提点...o(∩_∩)o
两个日期之间的天数--【编程珠玑】相关推荐
- 如何利用计算机计算天数,如何应用Win10系统电脑中的计算器计算两个日期之间的天数?...
如何应用Win10系统电脑中的计算器计算两个日期之间的天数? 相信很多小伙伴都有在使用windows10系统的电脑,其中的计算器如何才能用来计算两个日期之间的天数呢?方法很简单,下面小编就来为大家介绍 ...
- 如何利用计算机计算天数,计算机如何计算两个日期之间的天数
计算机是如何计算两个日期之间的天数的,这个问题看起来好像很简单,但是仔细一想,好像还没那么简单,月与月之间天数不一样,平年和闰年也会影响天数. 举个例子: 2017年2月1日-2017年6月1日中间有 ...
- Joda-Time中两个日期之间的天数
本文翻译自:Number of days between two dates in Joda-Time How do I find the difference in Days between two ...
- 微软面试题目(一) 计算两个日期之间的天数
微软的面试,没能参加啊,只好打听了下题目,其中一题是在20分钟内写出:计算两个日期之间天数的方法.昨天晚上想了一下,今天实现了一下,经过调试,差不多一个小时才弄好,惭愧啊 代码如下: /******* ...
- php做一个计算日期之间天数,PHP计算任意两个日期之间的天数
PHP面试题中,关于日期的题目作为基础考题经常出现,下面讨论一下获取两个日期之间的天数的方法. 收到一个答案,拆分年.月.日,分别进行减法,然后统计天数,好累. 针对低版本的PHP可以用下面的方式搞定 ...
- 计算机数日期,计算机如何计算两个日期之间的天数
计算机是如何计算两个日期之间的天数的,这个问题看起来好像很简单,但是仔细一想,好像还没那么简单,月与月之间天数不一样,平年和闰年也会影响天数. 举个例子: 2017年2月1日-2017年6月1日中间有 ...
- sql年月日加减法,计算两个日期之间的天数
1.年月日加减法(时间字段为 hiredate,表名为 emp) DB2 selecthiredate -5 day as hd_sub_5day,hiredate +5 day as hd_add ...
- DATEDIFF() 函数返回两个日期之间的天数
定义和用法 DATEDIFF() 函数返回两个日期之间的天数. 语法 DATEDIFF(date1,date2) date1 和 date2 参数是合法的日期或日期/时间表达式. 注释:只有值的日期部 ...
- wps表格日期计算天数_如何计算Google表格中两个日期之间的天数
wps表格日期计算天数 If you want to count the number of days between two dates, you can use the DAYS, DATEDIF ...
- iOS-计算两个日期之间的天数
//计算两个日期之间的天数 + (NSInteger) calcDaysFromBegin:(NSDate *)beginDate end:(NSDate *)endDate { //创建日期格式化对 ...
最新文章
- 苏黎世联邦理工学院SML课题组招收统计机器学习全奖博士生
- github/gitlab同时管理多个ssh key
- 【全真互联网下音视频通信技术演进】
- Intellij IDEA 重置所有工具栏 Intellij IDEA 中的 Debug 控制台输出窗口不见了的解决办法
- android:contentDescription
- Mybatis源码之插件模块分析
- jsoup解析和遍历一个html文档详解
- 安装阿里Java代码规约插件
- 25年面试官首次揭秘——世界500强面试题
- 微博android签名工具,微博签名
- 微软笔试题-老鼠与毒药
- 谷歌邮箱(@gmail.com):两步验证+应用专用密码登录
- 笔记本电脑把BlackBerry当modem上网
- 预处理器 - 记号传递操作符##
- KDL简介---KDL、PyKDL、pykdl_utils之间关系
- 连续潜在变量---主成分分析
- 一本通题解——1438:灯泡
- vue页面的定时刷新
- pinbox: 我用过最好的收藏工具
- Qt Creator 使用 QMediaPlayer 播放音频无声音
热门文章
- 选择结构ifelse练习题
- 2020 2 跳线法兰
- 第20章-van Emde Boas树 20.1-基本方法
- 云主机装黑果实践(1):deepin上qemu+kvm装黑果
- 传智播客/黑马程序员/JavaEE+Android28期就业班下载地址
- IDEMIA与JAC合作在日本第五级球场成功测试非接触式生物识别访问技术
- python将excel数据导入ppt_使用python将excel数据导入数据库
- 【已解决】PS自动退出并显示“在退出之前存储对Adobe Photoshop文档的更改吗?”
- 点击图片放大全屏加载,再次点击图片/文档回到原来位置
- PowerPoint超链接点击变色