如何在 c++ 中将用户日期与系统日期进行比较

How to compare user date with system date in c++?

本文关键字:日期 系统 比较 用户 c++      更新时间:2023-10-16

我已经从用户那里获取了日期,格式为 DD/MM/YEAR,但我想将其与系统日期进行比较,并想知道用户输入的日期是将来还是过去!

#include <iostream>
#include <ctime>
int main ()
{      
    char date [10],sysdate[10];
    cout<<"enter Date";           
    cin>>date;                   //for taking date from user
    _strdate(sysdate);      //for getting system date(given in DD/MM/YY    
    cout<< sysdate;        //prints system date    
}

如果您严格处理日期字符串(而不是日期time_t时间戳或日期tm结构),那么您可以直接比较"YY/MM/DD"格式的日期字符串,以确定一个是在另一个之前还是之后。

您使用的格式("DD/MM/YY")不允许这种直接的字符串比较。

观看此示例,那么不难将用户日期与系统日期进行比较

#include <iostream>
#include <ctime>
using namespace std;
int main( )
{
   // current date/time based on current system
   time_t now = time(0);

   tm *ltm = localtime(&now);
   // print various components of tm structure.
   cout << "Year: "<< 1900 + ltm->tm_year << endl;
   cout << "Month: "<< 1 + ltm->tm_mon<< endl;
   cout << "Day: "<<  ltm->tm_mday << endl;
  }