C++简单年月日的功能实现
// C++年月日判断初步代码
#include <iostream>
using namespace std;
class Data
{
int year;
int month;
int day;
public:
//判断日期是否有效
bool data_check(int _year,int _month,int _day)
{
year = _year;
month = _month;
day = _day;
if(0 > year || 2018 < year) return false;
if(0 > month || 12 < month) return false;
if(0 > day || 31 < day) return false;
return true;
}
//判断是否是闰年
bool leap_year(int _year)
{
year = _year;
if(year%400 == 0 || (year%4 == 0 &&year%100 != 0))//能被4,400整除除去被100整除的都是闰年
{
return true;
}
else
{
return false;
}
}
//下一天的日期
void nextday(int _year,int _month ,int _day)
{
year = _year;
month = _month;
day = _day;
switch(month)
{
case 1:
if(31 == day)
{
month++;
day = 1;
break;
}
case 2:
if((28 == day &&!leap_year(year))||(29 == day &&leap_year(year)))
{
month++;
day = 1;
break;
}
case 3:
if(31 == day)
{
month++;
day = 1;
break;
}
case 4:
if(30 == day)
{
month++;
day = 1;
break;
}
case 5:
if(31 == day)
{
month++;
day =1;
break;
}
case 6:
if(30 == day)
{
month++;
day =1;
break;
}
case 7:
if(31 == day)
{
month++;
day = 1;
break;
}
case 8:
if(31 == day)
{
month++;
day =1;
break;
}
case 9:
if(30 == day)
{
month++;
day = 1;
break;
}
case 10:
if(31 == day)
{
month++;
day = 1;
break;
}
case 11:
if(30 == day)
{
month++;
day = 1;
break;
}
case 12:
if(31 == day)
{
year++;
month = 1;
day = 1;
break;
}
}
cout << year << "." << month << "." << day << endl;
}
//列出下n天或者前n天的日期
void nextday(int _year,int _month,int _day,int n)
{
year = _year;
month = _month;
day = _day;
if(0 < n)
{
for(n =n+1;n>0;n--)
{
switch(month)
{
case 1:
if(31 == day)
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 2:
if((28 == day &&!leap_year(year))||(29 == day &&leap_year(year)))
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 3:
if(31 == day)
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 4:
if(30 == day)
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 5:
if(31 == day)
{
month++;
day =1;
break;
}
case 6:
if(30 == day)
{
month++;
day =1;
break;
}else {
day++;
break;
}
case 7:
if(31 == day)
{
month++;
day = 1;
break;
}else day++;
case 8:
if(31 == day)
{
month++;
day =1;
break;
}else {
day++;
break;
}
case 9:
if(30 == day)
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 10:
if(31 == day)
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 11:
if(30 == day)
{
month++;
day = 1;
break;
}else {
day++;
break;
}
case 12:
if(31 == day)
{
year++;
month = 1;
day = 1;
break;
}else {
day++;
break;
}
}
cout << year << "." << month << "." << day << endl;
}
}
if(0 > n)
{
for(n =n-1;n<0;n++)
{
switch(month)
{
case 1:
if(1 == day)
{
year--;
month =12;
day = 31;
break;
}else {
day--;
break;
}
case 2:
if(1 == day)
{
month--;
day = 31;
break;
}else {
day--;
break;
}
case 3:
if(1 == day)
{
month--;
if(leap_year(year))
{
day = 29;
}else{
day = 28;
}
break;
}else {
day--;
break;
}
case 4:
if(1 == day)
{
month--;
day = 31;
break;
}else {
day--;
break;
}
case 5:
if(1 == day)
{
month--;
day =30;
break;
}else {
day--;
break;
}
case 6:
if(1 == day)
{
month--;
day =31;
break;
}else {
day--;
break;
}
case 7:
if(1 == day)
{
month--;
day = 30;
break;
}else {
day--;
break;
}
case 8:
if(1 == day)
{
month--;
day =31;
break;
}else {
day--;
break;
}
case 9:
if(1 == day)
{
month--;
day = 31;
break;
}else {
day--;
break;
}
case 10:
if(1 == day)
{
month--;
day = 30;
break;
}else {
day--;
break;
}
case 11:
if(1 == day)
{
month--;
day = 31;
break;
}else {
day--;
break;
}
case 12:
if(1 == day)
{
month--;
day = 31;
break;
}else {
day--;
break;
}
}
cout << year << "." << month << "." << day << endl;
}
}
}
};
int main()
{
Data *data = new Data;
int year = 1997;
int month = 2;
int day = 28;
int n = -137;
cout << data->data_check(year,month,day) << endl;
cout << data->leap_year(year) << endl;
data-> nextday(year,month,day);
data-> nextday(year,month,day,n);
}
C++简单年月日的功能实现的更多相关文章
- ASP.NET MVC 学习4、Controller中添加SearchIndex页面,实现简单的查询功能
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/examining-the-edit-method ...
- Web---创建Servlet的3种方式、简单的用户注册功能
说明: 创建Servlet的方式,在上篇博客中,已经用了方式1(实现Servlet接口),接下来本节讲的是另外2种方式. 上篇博客地址:http://blog.csdn.net/qq_26525215 ...
- js+html+css简单的互动功能页面(2015知道几乎尖笔试题)http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html?from=y1.7-1.2
js+html+css实现简单页面交互功能(2015知乎前端笔试题) http://v.youku.com/v_show/id_XMTI0ODQ5NTAyOA==.html? from=y1.7-1. ...
- Spring 学习——基于Spring WebSocket 和STOMP实现简单的聊天功能
本篇主要讲解如何使用Spring websocket 和STOMP搭建一个简单的聊天功能项目,里面使用到的技术,如websocket和STOMP等会简单介绍,不会太深,如果对相关介绍不是很了解的,请自 ...
- Django文件上传三种方式以及简单预览功能
主要内容: 一.文件长传的三种方式 二.简单预览功能实现 一.form表单上传 1.页面代码 <!DOCTYPE html> <html lang="en"> ...
- 运用socket实现简单的ssh功能
在python socket知识点中已经对socket进行了初步的了解,那现在就使用这些知识来实现一个简单的ssh(Secure Shell)功能. 首先同样是建立两个端(服务器端和客户端) 需求是: ...
- Jenkins实现简单的CI功能
步骤一:安装JDK.Tomcat,小儿科的东西不在此详细描述 步骤二:下载安装Jenkins下载链接:https://jenkins.io/download/ 步骤三:将下载的jenkins.war部 ...
- jQuery实现简单前端搜索功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Unity UGUI 实现简单拖拽功能
说到拖拽,那必然离不开坐标,UGUI 的坐标有点不一样,它有两种坐标,一种是屏幕坐标,还有一种就是 UI 在Canvas内的坐标(暂时叫做ugui坐标),这两个坐标是不一样的,所以拖拽就需要转换. 因 ...
随机推荐
- CSS中em,px区别(转)
这里向大家描述一下CSS中px和em的特点和区别,px像素(Pixel),相对长度单位,像素px是相对于显示器屏幕分辨率而言的,而em是相对长度单位,相对于当前对象内文本的字体尺寸,相信本文介绍一定会 ...
- BZOJ2152聪聪可可
bzoj传送门 luogu传送门 这题算是很sb的点分治了,最近在点分治复习,写了练练手,对于这个题只需要对统计0,1,2出现的次数就好了吧,然后发现答案不对,也就是每个点对需要算两遍嘛,0也算,所以 ...
- C - Aladdin and the Flying Carpet
#include<bitset> #include<map> #include<vector> #include<cstdio> #include< ...
- 094 Binary Tree Inorder Traversal 中序遍历二叉树
给定一个二叉树,返回其中序遍历.例如:给定二叉树 [1,null,2,3], 1 \ 2 / 3返回 [1,3,2].说明: 递归算法很简单,你可以通过迭代算法完成吗?详见 ...
- 牛客网Java刷题知识点之Iterator和ListIterator的区别
不多说,直接上干货! https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=21 ...
- 说说JVM原理?内存泄漏与溢出的区别?何时产生内存泄漏?
1.JVM原理 JVM是Java Virtual Machine(Java虚拟机)的缩写,它是整个java实现跨平台的最核心的部分,所有的Java程序会首先被编译为.class的类文件,这种类文件可以 ...
- kafka基础六
kafka中的高可用HA 1.replication副本 同一个partition会有一个leader和多个副本,这些副本存储的内容与leader相同,可以通过 server.properties 配 ...
- ios,弹窗遮罩滚动穿透解决方案
- Django中多表的增删改查操作及聚合查询、F、Q查询
一.创建表 创建四个表:书籍,出版社,作者,作者详细信息 四个表之间关系:书籍和作者多对多,作者和作者详细信息一对一,出版社和书籍一对多 创建一对一的关系:OneToOne("要绑定关系的表 ...
- Android 检查内存溢出
工具网址:https://github.com/square/leakcanary 中文版说明地址:http://www.liaohuqiu.net/cn/posts/leak-canary-read ...