gpt4 book ai didi

c# - 将日期函数从 C++ 重写为 C#

转载 作者:行者123 更新时间:2023-11-30 03:48:01 25 4
gpt4 key购买 nike

我有一个像这样的C++函数

string LocalDate()
{
time_t current = time(NULL);
struct tm *local_time = localtime(&current);
char TIME[0xFF] ;
sprintf(TIME, "%02d%02d%02d%02d%02d%02d", local_time->tm_year % 100, local_time->tm_mon + 1,
local_time->tm_mday, local_time->tm_hour, local_time->tm_min, local_time->tm_sec);
return string(TIME);
}

我像这样用 C# 重写了

public static string LocalDate()
{
DateTime value = DateTime.Now;
return String.Format("{0}{1}{2}{3}{4}{5}", value.Year.ToString("00"),
value.Month.ToString("00"), value.Day.ToString("00"),
value.Hour.ToString("00"), value.Minute.ToString("00"), value.Second.ToString("00"));
}

唯一不同的是 C# 返回 20151029155030。而 C++ 返回 151029155030(C++ 中的年份部分实际上值为 115 - 我的意思是结构)

您可以看到 C++ 省略了年份部分的 20。我的第一个问题是你不觉得 C++ 部分很奇怪吗?它将如何正确计算 2212 年的年份? (会不会和2112一样?等等)

如何使 C# 输出相同的值做 %100?

最佳答案

您可以只使用 Custom DateTime format相反

return DateTime.Now.ToString("yyMMddHHmmss");

您的实现的问题是 value.Year.ToString("00") 没有将字符串限制为两位数。这只能确保 string 至少有 2 位数字,如果不足则用零填充。要复制 C++,您可以改为执行 value.Year % 100

关于c# - 将日期函数从 C++ 重写为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33413593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com