c++ - 如何验证用户输入的月份输入日期?

标签 c++ date validation user-input

我正在编写一个程序来验证用户输入的日期输入格式为 1900 年 1 月 1 日。我已经编写了代码来验证每个月的闰年和日期限制,但我无法验证每个月的文本输入。

这是代码中尚未运行的部分;验证字符串条目,以便除 Jan、Feb、Mar、Apr.......Dec 之外的任何用户输入都会抛出错误“错误条目,请输入有效日期”

  if (( month != "Jan" || month != "Feb" || month != "Mar" || month != "Apr" 
     || month != "May" || month != "Jun" || month != "Jul" || month != "Aug" 
     || month != "Sep" || month != "Oct" || month != "Nov" || month != "Dec"))    
  {
      std::cout << "Wrong entry, please enter valid date." << std::endl;
  }
  else
  {
      std::cout << day << " " << month << " " << year;
  }

最佳答案

您正在检查月份是否不是“一月”或“二月”或等等。由于该月份不可能同时是所有可能的月份,因此您的 if 条件将始终为 true .

将条件中的||替换为&&,即可正常工作。

关于c++ - 如何验证用户输入的月份输入日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59481486/

相关文章:

c++ - C++ 中的元类和反射

c++ - 试图确定算法的目标

c++ - 编译时常量数组本身的编译时常量索引是编译时常量吗?

c++ - 显式运算符 << 选择 'wrong' 重载

.net - .NET 中的代码约定、测试、断言和异常,何时使用?

java - Struts2 验证条件

java - 不能将字符串转换为日期

php - SQL/PHP 以秒为单位比较两个日期

java - 需要在 Talend Studio 中获取当前日期时间?

javascript - 回发前如何进行验证?