c++ - 我们如何在没有 stoi 命令的情况下将字符串转换为整数 / 以输入日期和输出整数
问题描述
#include <iostream>
using namespace std;
int daysMonth (int month) // the part to clarify
{
if (month >= 1 && month <= 12){
if (month == 2)
return 28;
if (month == 4 || month == 6 || month == 9 || month == 11)
return 30;
return 31;
}
return 0;
}
void nextDay (int day, int month, int year) // nextday conditions
{
int daysOfMonth = daysMonth(month);
if ((year % 4 == 0) && (year % 100 != 0) || year % 400 == 0)
{
if (day == 28){
day = 29;
month = month;
year = year;
}
}
if (day != daysOfMonth)
{
day = day + 1;
month = month;
year = year;
}
if (day == daysOfMonth)
{
day = 1;
month = month + 1;
year = year;
}
if ((month == 12) && (day == 31))
{
day = 1;
month = 1;
year = year + 1;
}
cout << "Next day is : " << day << "/" << month << "/" << year << endl;
}
int main(){
int day;
int month;
int year;
cout << "Enter a date : " << endl;
cin >> day;
cin >> month;
cin >> year;
cout << "Your chosen date is : " << day << "/" << month << "/" << year << endl;
if (day >= 1 && day <= 31 && month >= 1 && month <= 12)
{
nextDay(day, month, year);
}
else
cout << "Invalid date" << endl;
}
现在我的问题如下:如果我进入 28/02/2016,我将得到 30/02/2016。
另一个问题是:
有没有办法以 DD/MM/YYYY 格式获取日期,然后使用 stoi 之类的命令获取 DD MM YYYY - 我提到该命令对我不起作用。
如果我输入 28/02/2016,我试图像往常一样获得结果,我应该得到 29/02/2016 - 我知道还有另一个条件可以增加 day + 1,但为什么没有跳过?
解决方案
推荐阅读
- python-3.x - pywinauto双击TreeItem(或打开并双击里面)
- html - 文本区域包装的样式最大宽度与相对元素重叠
- google-analytics - Google Analytics 中的跨域跟踪,无需将会话 ID 传递给 URL
- javascript - 计算两个十进制数 | JavaScript 计算器
- javascript - 将危险的SetInnerHTML字符串表单内的formRef映射到组件内的formRef
- python - Cassandra 无限行响应
- java - 检查2个字符串的内容
- javascript - × Unhandled Rejection (SyntaxError):JSON 输入意外结束
- javascript - 棱镜切片的打字稿类型
- python - 如何从 Discord 消息中的提及中获取角色 ID?