转换日期格式

Converting date format?

本文关键字:格式 日期 转换      更新时间:2023-10-16
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
// declares variables
string dayow;
string month;
string day;
string year;

int main()
{
cout << "Pick you day of the week (ex: Monday-Sunday)" << endl;
getline(cin, dayow);
cout << " " << endl;
cout << "Pick your month (ex: January-December)" << endl;
getline(cin, month);
cout << " " << endl;
cout << "Pick your day of the month (ex: 1-31)" << endl;
getline(cin, day);
cout << " " << endl;
cout << "Pick your year" << endl;
getline(cin, year);
cout << " " << endl;
cout << "This is your date.." << endl;
cout << dayow << ", " << month << " " << day << ", " << year << "." << endl;
cout << " " << endl;
cout << "Here are the 3 formats to display your date.." << endl;
cout << " " << endl;
 cout << "1. " << month << " " << day << " was a " << dayow << " in " << year    << endl;
cout << " " << endl;
std::string str = dayow;
std::string str1 = str.substr(0, 3);
std::string str = month;
std::string str2 = str.substr(0, 2);
std::string str = day;
std::string str3 = str.substr(0, 2);
std::string str = year;
std::string str4 = str.substr(0, 4);
std::cout << str1 << ", " << str2 << " " << str3 << " '" << str4 << endl;
return 0;
}

所以我在这里要做的是让用户输入ex: Tuesday, March 22, 2012,然后有2个结果出来。1号是"2012年1月1日是星期二",这很好。问题在于第二个结果,我想要"星期二,2012年3月22日",但问题是在第46 - 53行,所有的字符串都连接到第一个std:string str = dayow;所以输出就变成了TueTuTuTues!有人能帮忙吗?谢谢!

编辑:抱歉,如果这是一个新手问题:/真的是新的编码!

试试这个:(修改你的代码)

#include <iomanip>
#include<iostream> // **add this header file**
  #include <string>
  #include <fstream>
  using namespace std;
 // declares variables
string dayow;
string month;
string day;
string year;

int main()
{
cout << "Pick you day of the week (ex: Monday-Sunday)" << endl;
getline(cin, dayow);
cout << " " << endl;
cout << "Pick your month (ex: January-December)" << endl;
getline(cin, month);
cout << " " << endl;
cout << "Pick your day of the month (ex: 1-31)" << endl;
getline(cin, day);
cout << " " << endl;
cout << "Pick your year" << endl;
getline(cin, year);
cout << " " << endl;
cout << "This is your date.." << endl;
cout << dayow << ", " << month << " " << day << ", " << year << "." << endl;
cout << " " << endl;
cout << "Here are the 3 formats to display your date.." << endl;
cout << " " << endl;
 cout << "1. " << month << " " << day << " was a " << dayow << " in " << year    << endl;
cout << " " << endl;
// **changes start here**
string str1 = dayow.substr(0, 3);
string str2 = month.substr(0, 3);
string str3 = day.substr(0, 2);
string str4 = year.substr(0, 4);
cout << str1 << ", " << str2 << " " << str3 << " ," << str4 << endl;
return 0;
}

您使用哪个编译器?你的程序不能编译。

  1. 添加#include <iostream>
  2. c++中不能定义几个同名的变量。所以替换

    std::string str = dayow;
    std::string str1 = str.substr(0, 3);
    std::string str = month;
    std::string str2 = str.substr(0, 2);
    std::string str = day;
    std::string str3 = str.substr(0, 2);
    std::string str = year;
    std::string str4 = str.substr(0, 4);
    

    std::string str1 = dayow.substr(0, 3);
    std::string str2 = month.substr(0, 2);
    std::string str3 = day.substr(0, 2);
    std::string str4 = year.substr(0, 4);
    

更改此部分:

std::string str = dayow;
std::string str1 = str.substr(0, 3);
std::string str = month;
std::string str2 = str.substr(0, 2);
std::string str = day;
std::string str3 = str.substr(0, 2);
std::string str = year;
std::string str4 = str.substr(0, 4);

:

std::string str = dayow;
std::string str1 = str.substr(0, 3);
std::string stra = month;
std::string str2 = stra.substr(0, 3);
std::string strb = day;
std::string str3 = strb.substr(0, 2);
std::string strc = year;
std::string str4 = strc.substr(0, 4);

问题是日,月,年的变量名相同