C语言 · 日期计算
YYYY MM DD
W
1 <= MM <= 12
1 <= DD <= 31,且确保测试样例中YYYY年MM月DD日是一个合理日期
1 <= W <= 7,分别代表周一到周日
#include<stdio.h>
#include<stdlib.h>
/*判断闰年函数:四年一闰,百年不闰,四百年再闰.*/
bool leap(int year){
if(year%== && year%!=)
return true;
if(year%==)
return true;
return false;
}
/*年份带来的天数差*/
getDay1(int year){
int sum=;//记录年份带来的天数差
if(year<=){
for(int i=year;i<;i++){
if(leap(i))
sum+=;
else
sum+=;
}
}
if(year>){
for(int i=;i<year;i++){
if(leap(i))
sum+=;
else
sum+=;
}
}
return sum;
}
/*月份带来的天数差*/
int getDay2(int year,int mon,int day){
int sum=;//记录月份带来的天数差
for(int i=;i<mon;i++){
if(i== || i== || i== || i== || i== || i== || i==){
sum+=;
}
if(i== || i== || i== || i==){
sum+=;
}
if(i== && leap(year)){
sum+=;
}
if(i== && !leap(year)){
sum+=;
}
}
sum = sum + day;
return sum-;//加到基准天数时其实多加了1
}
/*
在得出天数之后,还要分情况,首先将得到的天数差day%7,得到星期差; (1)如果给出的年份小于等于基础年份,那么应该从基础时间(星期六)
向负方向数day%7天,注意1之后要变成7; (2)如果给出的年份大于基础年份,那么应该从基础时间(星期六)
向正方向数day%7天,注意7之后要变成1. 注:abs():取绝对值函数。
*/
int main(){
int year,month,day;
scanf("%d%d%d",&year,&month,&day);
int sum=getDay1(year);//得到年份带来的天数差
if(year<){
sum = sum-getDay2(year,month,day);
int ans = sum%;
printf("%d",ans==?:abs(-ans));
}else{
sum = sum+getDay2(year,month,day);
int ans = sum%;
printf("%d",(+ans)> ? ((+ans)%) : (+ans));
}
return ;
}
C语言 · 日期计算的更多相关文章
- iOS学习笔记37-时间和日期计算
一.时间和日期计算 我们在应用开发中,时常须要和时间打交道,比方获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有例如以下几个: 1. NSDate:表示一个绝对的时间点 2. ...
- C语言中计算变量占用内存空间
C语言中计算变量占用内存空间 在C语言中通常用[sizeof]运算符计算变量占内存空间,如下面的例子:
- java日期比较,日期计算
版权声明:本文为楼主原创文章,未经楼主允许不得转载,如要转载请注明来源. 都是常用的日期之间的比较方法,供以后参考. 热身:获取当前时间 SimpleDateFormat df = new Simpl ...
- CCF真题之日期计算
201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天.满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍: 2 ...
- 李洪强漫谈iOS开发[C语言-041]-计算月份天数
李洪强漫谈iOS开发[C语言-041]-计算月份天数
- SQL通过日期计算年龄
首先建立一个表如下: ======================= BirthDay datetime not null Age 通过公式计算得出 ======================= 以 ...
- CalendarHelper日期计算工具,各种日期的获取和计算
今天分享一个日期获取和计算的工具类,这个最初是用在项目中获取每周每月日期用的. <Attention> 之后逛帖子的时候发现了这个专门处理日期的库,java上也有,android上还为了避 ...
- php 日期 - 计算2个日期的差值
/** * 日期-计算2个日期的差值 * @return int */ public function get_difference($date, $new_date) { $date = strto ...
- Javascript扩展String.prototype实现格式金额、格式时间、字符串连接、计算长度、是否包含、日期计算等功能
<script src="Js/jquery-3.1.1.min.js"></script> <script type="text/java ...
随机推荐
- appium简明教程(10)——控件定位基础
狭义上讲,UI级的自动化测试就是让机器代替人去点来点去的过程. 但机器去点什么(点上面还是点左边),怎么点(是长按还是轻触),这些东西是必须由代码的编写者所指示清楚的. 控件定位就是解决机器点什么的问 ...
- 【OpenCV】给图像加入噪声
图像噪声使图像在获取或是传输过程中收到随机信号干扰,妨碍人们对图像理解及分析处理的信号.非常多时候将图像噪声看做多维随机过程,因而描写叙述噪声的方法全然能够借用随机过程的描写叙述,也就是使用随机过程的 ...
- [转]JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java ...
- 转: 基于elk 实现nginx日志收集与数据分析
原文链接:https://www.cnblogs.com/wenchengxiaopenyou/p/9034213.html 一.背景 前端web服务器为nginx,采用filebeat + logs ...
- selenium 实现网页截图
使用webdriver提供的 save_screenshot 方法: from selenium import webdriver driver = webdriver.Chrome() driver ...
- Android Logcat信息级别解读
Android Logcat信息级别解读 Logcat信息分为好几个级别,分别是:Assert(断言).Debug(调试).Error(错误).Info(信息).Verbose(详细).Warning ...
- Vue 的开始
1 框架的 MVVM 模式 ViewModel是Vue.js的核心,它是一个Vue实例.Vue实例是作用于某一个HTML元素上的,这个元素可以是HTML的body元素,也可以是指定了id的某个元素. ...
- docker-compose教程(安装,使用, 快速入门)
1.Compose介绍Docker Compose是一个用来定义和运行复杂应用的Docker工具.一个使用Docker容器的应用,通常由多个容器组成.使用Docker Compose不再需要使用she ...
- Vue(三):vuex是什么
vuex官网介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue ...
- 有关google的appengine部署服务器的简单教程
以下的内容都是看这个网址:https://developers.google.com/appengine/. 1.既然是google的东西.当然就要注册一个google的账号吧. (记得注册后要顺便把 ...