因此,我正在创建一个C ++ UWP应用程序,该应用程序在打开时会显示当前日期和时间。另外,我还需要找到一种方法来显示星期几。在一周中的一天,我使用以下代码:
#include <ctime>
#include <time.h>
#include <chrono>
//under Mainpage::Mainpage()
time_t timeObj = time(nullptr);
tm aTime;
localtime_s(&aTime, &timeObj);
String ^ weekofdayout;
switch (aTime.tm_wday)
{
case 1:
weekofdayout = "Monday";
break;
case 2:
weekofdayout = "Tuesday";
break;
case 3:
weekofdayout = "Wednesday";
break;
case 4:
weekofdayout = "Thursday";
break;
case 5:
weekofdayout = "Friday";
break;
default:
weekofdayout = "(NULL)";
break;
}
timetext->Text += weekofdayout;
但是,每当我运行它时,文本框都会返回:(NULL)默认情况。我不知道是什么原因造成的。
在使用以下代码在Windows Forms C ++中成功之前,我花了系统时间:
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
DateTime datetime = DateTime::Now;
this->label3->Text = datetime.ToString();}
我无法将其移植到UWP C ++,因为我认为它使用系统名称空间。关于如何在c ++中重新创建相同效果的任何想法?
对于秒表,我没有在线找到有关UWP C ++秒表的任何文档,但我确实找到了这一点:https://iot-developer.net/windows-iot/uwp-programming-in-c/timer-and-timing/stopwatch不是用于C ++ UWP,而是用于C#UWP。我试图用全局函数制作自己的计时器,但是它只是冻结程序,直到代码运行完毕:
int seconds = 0;
for (int i = 0; ; i++)
{
seconds++;
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
if (stopwatch == false)
{
break;
}
}
return seconds;
我很困惑,通常,我会在网上找到答案,但是由于UWP C ++的文档很少,所以我不知道在哪里找到答案。