两个日期之间的天数--【编程珠玑】
被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 { //创建日期格式化对 ...
最新文章
- C++ 关键字 extern
- 大话数据结构:多路查找
- [react] 你用过react版本有哪些?
- java复习系列[4] - Java IO
- Arduino入门笔记(6):温度传感器及感温杯实验
- 通向财务自由之路02_成功的决定因素:你
- 同事推荐的一部老电影 《魔鬼代言人》
- k8s集群部署二(自签TLS证书)
- 智能公交监控调度系统技术方案,等车不再等到心碎
- Windows10+clion+opencv时报错0xC0000139和0xC0000135的解决方法之一
- 俄罗斯方块游戏设计与实现
- windows 7 数据执行保护 开启关闭方法
- tensorflow2.3版本 LSTM作为最后输出层 报错Function call stack: train_function -> train_function -> train_functio
- 四种常见背包问题整理
- keydown、input、keyup
- [libxml2]_[C/C++]_[使用libxml2读取分析xml文件]
- oracle调优 oracle培训
- 工作碰到的问题解决积累
- 12.关于uniapp小程序设置页面背景色无效的问题及解决方案
- IT忍者神龟之Microsoft Office Enterprise 2007 简体版 企业版 序列号
热门文章
- 读书笔记-确定Icepak模型多级网格的级数
- codeforces 1536B Prinzessin der Verurteilung
- Google Play 隐私策略
- 对标苹果 M1,谷歌自研 ARM 芯片或将于 2023 年发布?
- 关于linux环境下访问Windows数据库的处理方法
- ASP.NET 2.0中使用Gridview控件的高级技巧
- 杭电计算机学硕调剂,2020年杭州电子科技大学考研调剂安排
- Android单元测试框架Robolectric3.0介绍(一)
- 【Linux系统】第8节 Linux系统软件分类及安装
- 51单片机——暴躁升旗手在线升旗(一款简陋的升旗装置)