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 ...
随机推荐
- 【转】不要去SeaWorld
不要去SeaWorld 很多人喜欢海洋动物,比如海豚和“杀人鲸”(orca),但是我建议不要去海洋世界看它们.海豚和杀人鲸都是有灵性的,跟人类的智慧很接近,而且对人极其友好的动物.“杀人鲸”名字吓人, ...
- SharePoint 2013 Farm 安装指南——Least Privilege
写过很多关于SharePoint 2013 安装,这是第四篇.可能你会觉得为什么如此简单的安装至于花那么多精力去折腾吗.我的答案是肯定的.知识的积累不是一蹴而就的,而是循序渐进的去学习,每一个阶段都有 ...
- Python 文件 writelines() 方法
概述 Python 文件 writelines() 方法用于向文件中写入一序列的字符串. 这一序列字符串可以是由迭代对象产生的,如一个字符串列表. 换行需要制定换行符 \n. 语法 writeline ...
- C++中的#和##运算符
#和##运算符 #:构串操作符 构串操作符#只能修饰带参数的宏的形参,它将实参的字符序列(而不是实参代表的值)转换成字符串常量 #define STRING(x) #x#x#x #define TEX ...
- Linux 定时任务【转载,整理】
目前,我已知的定时任务实现方法有两种:cron or systemd job,这里主要介绍cron的用法 一.crontab 简介 crontab命令的功能是在一定的时间间隔调度一些命令的执行.该命令 ...
- spring 下载
Spring官网(https://spring.io/)改版后,直接下载Jar包的链接,下面汇总 1.直接输入地址,改相应版本即可:http://repo.springsource.org/libs- ...
- 跨系统-跨数据库访问表或创建映射视图-PB访问数据库的特殊处理
一. 在项目中可能会遇到在一个项目中会出现多个数据库的操作. 二. 也可能会多个系统多个数据库之间进行交互操作显示. 三. 经常需要两个数据库关联查询或需要翻译显示内容时会很麻烦. 四. 今天就有个简 ...
- lnmp 一键安装
系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu/Raspbian/Deepin Server/Aliyun/Amazon/Mint Linux发行版 需要5GB以上硬盘剩 ...
- php分享十五:php的命令行操作
一:像命令行传参数方法: 1: 使用$argc $argv 用法: /usr/local/php/bin/php ./getopt.php 123 456 2:使用getopt函数() http:/ ...
- navicat cannot create oci 解决
1.新建连接 2.连接时候报错 3.解决 3.1.选择对应版本OCI 3.1.配置OCI[工具->选项...]