加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

输入一个日期和时间,输出下一秒的日期和时间

(2009-09-01 20:52:04)
标签:

day

if

cin

输出下一秒

教育

分类: c语言基础

//输入一个时间,输出下一秒的时间。

//例如输入2008年2月28日23时59分59秒,

//输出为:2008年2月29日0时0分0秒。


#include<iostream>
using namespace std;

bool isLeapYear(int year);
bool isdate(int year,int month,int day);
void addSecond(int year,int month,int day,int hour,int minute,int second);
int md[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main()
{
loop:
 int year,month,day,hour,minute,second;
 cout<<"请输入起始时刻: "<<endl;
lab1:
 cout<<"年:";
 cin>>year;
 if(year<0)
  goto lab1;
lab2:
 cout<<"月:";
 cin>>month;
 if(month>12||month<1)
  goto lab2;
lab3:
 cout<<"日:";
 cin>>day;
 if(!isdate(year,month,day))
  goto lab3;
lab4:
 cout<<"时:";
 cin>>hour;
 if(hour<0||hour>23)
  goto lab4;
lab5:
 cout<<"分:";
 cin >>minute;
 if(minute<0||minute>59)
  goto lab5;
lab6:
 cout<<"秒:";
 cin>>second;
 if(second<0||second>59)
  goto lab6;
  cout<<"你输入的时间为:"<<year<<"年"<<month<<"月"<<day<<"日"<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
  addSecond(year,month,day,hour,minute,second);
  system("pause");
  goto loop;
}

bool isdate(int year,int month,int day)
{
 if(month==2)
 {
  if(isLeapYear(year))
   if(day<0||day>(md[month]+1))
    return false; 
 }
 else
 {
  if(day<0||day>md[month])
   return false;
 }
 return true;

}
bool isLeapYear(int year)
{
 if(year%400==0||(year%4==0)&&(year%100!=0))
  return true;
 else
  return false;
}
void addSecond(int year,int month,int day,int hour,int minute,int second)
{
 second+=1;
 if(second>59)
 {
  second=0;
  minute+=1;
  if(minute>59)
  {
   minute=0;
   hour+=1;
   if(hour>23)
   {
    hour=0;
    day+=1;
    if(isLeapYear(year)&&month==2)
    {
     if(day>md[month]+1)
     {
      day=1;
      month+=1;
      if(month>12)
      {
       month=1;
       year+=1;
      }
     }
    }

    else
    {
     if(day>md[month])
     {
      day=1;
      month+=1;
      if(month>12)
      {
       month=1;
          year+=1;
      }
     }
    }
   }
  }
 }
 cout<<"下一秒的时间为:"<<year<<"年"<<month<<"月"<<day<<"日"<<hour<<"时"<<minute<<"分"<<second<<"秒"<<endl;
}

0

阅读 收藏 喜欢 打印举报/Report
前一篇:万年历
后一篇:随机数的应用
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有