输入年月日时分秒,输出下一秒的时间。

#include "stdio.h"
void main()
{
int yea,mon,day,hou,min,sec;
while(1)
{
printf("请输入年月日时分秒!\n");
scanf("%d%d%d%d%d%d",&yea,&mon,&day,&hou,&min,&sec);
printf("你输入的是时间是:\n%d年%d月%d日%d小时%d分%d秒\n",yea,mon,day,hou,min,sec);
if(mon>0&&mon<13&&day<32&&day>0&&hou<24&&hou>-1&&min>-1&&min<60&&sec>-1&&sec<60)
{
sec = sec + 1; //秒数____进位判断
if (sec == 60)
{
sec = 0;
min = min + 1;
}
if (min == 60)
{
min = 0;
hou = hou + 1;
}
if (hou == 24)
{
hou = 0;
day = day + 1;
}
/*____根据秒数判断:算到___天,day向month进位时__需要考虑分为30天__和31天__的月份,最重要的是考虑__闰年的2月__!____*/


/*_____________________________________________________*/


if ((yea%400 == 0)||((yea%4 == 0) && (yea%100 != 0)) ) //闰年
{
if(mon == 2) //2 月
{
if(day == 30)//______________________________________________________________期间写错一次,因为把 ==  写成了  =  !!!!!
{
day = 1;
mon = mon + 1;
}
}
if(mon ==1||mon ==3||mon ==5||mon ==7||mon ==8||mon ==10||mon ==12) //1.3.5.7.8.10.12
{
if(day == 32)
{
day = 1;
mon  = mon + 1;
}
}
if(mon ==4||mon ==6||mon ==9||mon ==11) //4.6.9.11
{
if(day == 31)
{
day = 1;
mon = mon +1;
}
}
if(mon == 13)
{
mon = 1;
yea = yea + 1;
}
}
/*_______________________________________________*/
else //非闰年
{
if(mon ==1||mon ==3||mon ==5||mon ==7||mon ==8||mon ==10||mon ==12) //1.3.5.7.8.10.12
{
if(day == 32)
{
day = 1;
mon  = mon + 1;
}
}
if(mon == 2||mon ==4||mon ==6||mon ==9||mon ==11) //2.4.6.9.11
{
if(day == 31)
{
day = 1;
mon = mon +1;
}
}
if(mon == 13)
{
mon = 1;
yea = yea + 1;
}
}
printf("下一秒是:\n");
printf("%d年%d月%d日%d时%d分%d秒\n\n",yea,mon,day,hou,min,sec);
fflush(stdin);
}
else printf("请输入正确的年月日!\n\n");
    fflush(stdin);
}

}

//DD  为啥我的没有像编译器里的代码那种显示风格

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 C++ 函数,可以实现输入年月日时分秒输出年月日时分秒的下一秒的功能。 ```c++ #include <iostream> #include <ctime> using namespace std; void nextSecond(int &year, int &month, int &day, int &hour, int &minute, int &second) { time_t rawtime; struct tm * timeinfo; // 将输入时间转换为 tm 结构体 time(&rawtime); timeinfo = localtime(&rawtime); timeinfo->tm_year = year - 1900; timeinfo->tm_mon = month - 1; timeinfo->tm_mday = day; timeinfo->tm_hour = hour; timeinfo->tm_min = minute; timeinfo->tm_sec = second; // 调用 mktime 函数转换为时间戳 rawtime = mktime(timeinfo); // 时间戳加 1 秒 rawtime += 1; // 将时间戳转换为 tm 结构体 timeinfo = localtime(&rawtime); // 将年月日时分秒赋值给对应的变量 year = timeinfo->tm_year + 1900; month = timeinfo->tm_mon + 1; day = timeinfo->tm_mday; hour = timeinfo->tm_hour; minute = timeinfo->tm_min; second = timeinfo->tm_sec; } int main() { int year, month, day, hour, minute, second; cout << "请输入年月日时分秒,以空格分隔:" << endl; cin >> year >> month >> day >> hour >> minute >> second; nextSecond(year, month, day, hour, minute, second); cout << "下一秒时间是:" << year << "年" << month << "月" << day << "日" << hour << "时" << minute << "分" << second << "秒" << endl; return 0; } ``` 该程序中使用了 C++ 标准库中的 time 函数和 tm 结构体,通过将输入年月日时分秒转换为 tm 结构体,再将其转换为时间戳,加上 1 秒后再转换回 tm 结构体,最后将年月日时分秒赋值给对应的变量,实现了输出年月日时分秒的下一秒的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值