pta上的题,答案正确但是只给了一半分,问题在哪

问题遇到的现象和发生背景 返回日期的星期信息 (35 分)

定义一个日期类CData,其有数据成员year,month,day,函数成员有构造函数,析构函数,复制构造函数,显示日信息函数display(年月日星期).
函数Getweek是返回改日期是英文单词表示的星期几。从键盘读入一个日期,先显示21世纪的第一天日期的信息(已知2000年1月1号是星期六),然后再建立一个新日期的信息。

输入样例:
在这里给出一组输入。例如:

2000 1 31
输出样例:
在这里给出相应的输出。例如:

The first day of the 21st century:
2000-1-1:Saturday
2000-1-31:Monday

问题相关代码,请勿粘贴截图
#include <iostream>
#include <string>
using namespace std;
class CDate
{
private:
    int year, month, day;
public:
    CDate(int y = 2000, int m = 1, int d = 1)
    {
        year = y;
        month = m;
        day = d;
    }
    string Getweek()
    {
        string Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday;
        int add = 0, add1;
        add += (month - 1) * 30 + day;
        if (month < 9) add += month / 2;
        else add += (month + 1) / 2;
        if (month > 2) {
            add -= 2;
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) add += 1;
        }
        add1 = (add - 1) % 7;
        if (add1 == 0) return "Saturday";
        else if (add1 == 1) return "Sunday";
        else if (add1 == 2) return "Monday";
        else if (add1 == 3) return "Tuesday";
        else if (add1 == 4) return "Wednesday";
        else if (add1 == 5) return "Thursday";
        else if (add1 == 6) return "Friday";
    }
    void display() {
        if (year == 2000 && month == 1 && day == 1) cout << "The first day of the 21st century:" << endl;
        cout << year << "-" << month << "-" << day << ":" << CDate::Getweek();
    }
};
int main()
{
int y,m,d;
cin>>y>>m>>d;
CDate d0; d0.display();
cout<<endl;
CDate d1(y,m,d); d1.display();

}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

格式错误,答案错误,超时,pta上应该有显示的