**

C语言–日期问题(黑色星期五问题)

**
问题:有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。

日期问题是很容易但很麻烦的一个问题,在平常刷题中,不是不会做,而是经常思路发生错乱!
思路在最下面,看不懂代码的可以看最下面 ↓ ↓ ↓ ↓

#include <bits/stdc++.h>
using namespace std;
int rd(int n)//闰年的月份判断。相信大家都看的懂
{if((n==1)||(n==3)||(n==5)||(n==7)||(n==8)||(n==10)||(n==12)){return 31;}if(n==2){return 29;}else{return 30;}
}
int dd(int n)//平年的月份判断,(非闰年哦)
{if((n==1)||(n==3)||(n==5)||(n==7)||(n==8)||(n==10)||(n==12)){return 31;}if(n==2){return 28;}else{return 30;}
}
int run(int n)//闰年判断
{if(((n%4==0)&&(n%100!=0))||(n%400==0)){return 1;}return 0;
}
int main() {int n;cin>>n;int sum = 0;//两块循环分开来写,希望大家更容易理解//也可以一起写for循环中再判断一次if(i!=n),i==n执行下面那个循环for(int i=1;i<n;i++){if(run(i)==1){sum=sum+366;}else{sum=sum+365;}}//i=n的循环for(int i=1;i<=12;i++){if(run(n)==1){sum=13+sum;if(sum%7==5){cout<<n<<"年"<<i<<"月"<<"13号"<<endl; }sum=sum-13+rd(i);     }else{sum=sum+13;if(sum%7==5){cout<<n<<"年"<<i<<"月"<<"13号"<<endl;}sum=sum-13+dd(i);}}return 0;
}

↓ ↓ ↓ ↓
解题思路:年份是从1/1/1开始计算的,那么计算某个月的13号是不是周五,无非是1年1月1日到这一年的某一个13号的日期总和求余数。

1年1月1日这一天是周一

sum(2018-1-13)%7==5,证明1年1月1日这一天是周五

if(sum%7==5)
{cout<<"这一天是周五哦"<<endl;
}

注意sum在累加判断时的还原

 sum=13+sum;..................sum=sum-13+rd(i);

运行结果:

这段代码更好理解,希望大家提出建议,Thanks♪(・ω・)ノ

C语言--日期问题(黑色星期五问题)相关推荐

  1. R语言日期函数weekdays, months, quarters julian实战(星期几、那个月、那个季度、时间差)

    R语言日期函数weekdays, months, quarters & julian实战(星期几.那个月.那个季度.时间差) 目录

  2. C语言 日期转时间戳

    C语言 日期转时间戳 废话先说 啥时候开始数? 站在2022的肩膀上! 一年能"嘀嗒"多少下? 言归正传 废话先说 关于用C实现日期转时间戳,面对这样一个很基础的功能,作为一个小白 ...

  3. 修改系统默认区域语言日期格式

    最近一个EF+WCF的项目中需要使用Expression传递查询条件,有的条件中会包含对DateTime类型的参数进行判断. 例如最常见的 order=>order.OrderDate > ...

  4. c语言日期加减天数,日期计算器

    一  完成的功能 注意:此日历只能用于计算1982年10月15日以及以后的日期 1.日期+/-天数=返回日期(处理:1.如果+/-一个负的天数的情况 2.如果加之后,或减之后的日期非法) 2.两个日期 ...

  5. c语言日期比较函数公式大全,C语言时间函数整理

    C语言时间函数整理 用到的数据结构: time_t是一个long类型 代表机器时间,可由time( )函数获得. 日历时间用一个(char *) 类型的字符串表示.格式为:星期 月 日 小时:分:秒  ...

  6. c语言日期编程,C语言编程计算第二天日期示例代码

    #include int year, month, day; const int day_30 = 30; const int day_31 = 31; int day_month_2 = 0; ch ...

  7. C 语言日期时间处理

    前言 在标准C中, 日期和时间的处理包含在 time.h 的头文件中. 需要使用日期和时间相关的类型的函数的话, 需要导入time.h. 本篇介绍的部分有: 1. 日期时间相关的类型 2. 日期时间相 ...

  8. C语言——日期转换为天数

    问题描述 编写一个程序,用户输入年月日,显示该日是该年的第几天. 代码 #include <stdio.h> struct when {int year;int month;int day ...

  9. OpenJudge百炼-2964-日历问题-C语言-日期处理

    描述: 在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年.例如:1700, 1800, 1900 和 2100 不是闰年,而 160 ...

最新文章

  1. redis之mq实现发布订阅模式
  2. jmx rmi 穿越防火墙问题及jmxmp的替代方案
  3. pp模块生产策略组-对于零部件计划策略
  4. Linux 随机启动 Mysql​
  5. mac下的secureCRT.8的设置
  6. Linux嵌入式_详解从原理图到数据手册解析PWM蜂鸣器实现
  7. 在CentOS6.5上安装/启动PostgreSQL
  8. .NET 5(C#) 将控制台程序(Console Application)发布成单个exe文件
  9. 计算机做游戏软件视频,游戏主播用什么视频剪辑软件
  10. solr5.3 实现同义词 扩展词典 停止词典 功能介绍
  11. 天狮集团云函数实践:自定义业务逻辑实现跨境电商全球直播
  12. 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)
  13. python研究背景和意义_选题背景、目的及研究意义
  14. 51智能小车前进后退左右旋转
  15. 导入 xlsx php,php如何使用phpexcel类导入excel表格数据
  16. 蓝海创意云×可米酷 || “360VR全景直播解决方案”亮相企业产品发布会
  17. 爪哇国新游记之五----继承与接口
  18. mysql sql日期截取年月日_sql截取日期/时间的单独部分,比如年、月、日、小时、分钟等等...
  19. cdma200 matlab 仿真,CDMA通信系统的MATLAB仿真
  20. Just A Triangle

热门文章

  1. C#自学书籍全集C#自学英文原版书籍
  2. opencv图像金字塔的介绍
  3. 技术面试与 HR 谈薪资技巧
  4. 华维单片机编程:仿真软件适合单片机初学者吗
  5. 从单片机初学者迈向单片机工程师第二版第一章 究竟该如何学习
  6. python 通过ssh连接 华为云数据库RDS
  7. cf 429 B. Godsend
  8. python批量新建文件夹_Python3 批量创建文件夹
  9. 第十九章 python 数据可视化 Matplotlib Pygal
  10. mysql中的case when then使用