下午好🌅🌅🌅
本答案参考ChatGPT-3.5
您的代码中,SetTime方法中的重载参数是COleDateTime。由于CTime类型的字符串是不能直接被解析为日期和时间的,所以这个重载没有效果。
要解决这个问题,您需要创建一个自定义的CTime类型,例如:
class CustomTime {
public:
struct CDate {
int year;
int month;
int day;
int hour;
int minute;
int second;
};
CustomTime(int year, int month, int day, int hour, int minute, int second) : year(year), month(month), day(day), hour(hour), minute(minute), second(second) {}
bool operator==(const CustomTime& other) const {
return year == other.year && month == other.month && day == other.day &&
hour == other.hour && minute == other.minute && second == other.second;
}
private:
int year;
int month;
int day;
int hour;
int minute;
int second;
};
然后,您可以使用这个自定义的时间类型来替换oletime.ParseDateTime(_T("2024-08-28 17:18:44"));
。以下是一个可能的实现:
m_datetimepickerBegin.SetTime(CustomTime(2024, 8, 28, 18, 0, 0));
这将使用自定义的时间类型来进行日期和时间的计算,并将其设置为控件的初始值。请注意,这仅适用于满足条件的情况。如果要在所有情况下都使用自定义的时间类型,请确保在程序的开始时正确地初始化它。