Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从C++;到C# 我有一个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#_C++ - Fatal编程技术网

从C++;到C# 我有一个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++;到C# 我有一个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#,c++,C#,C++,我把它改写成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(

我把它改写成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值-结构)< <强> >/p> <>你可以看到C++中省略了20的部分。我的第一个问题是C++部分看起来不奇怪吗?它如何正确计算2212年的年数?(是否与2112?等相同)

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

您可以使用a代替


实现的问题在于
value.Year.ToString(“00”)
没有将字符串限制为两位数。这只会确保
字符串
至少有2个数字,如果数字较少,则左键带零。为了复制C++,你可以做“代码>值。年% 100”/代码>。< /P>

(C++中的年部分实际上有115个值-结构) <>你可以看到C++中省略了20的部分。我的第一个问题是C++部分看起来不奇怪吗?它如何正确计算2212年的年数?(是否与2112?等相同


DateTime的年份值为0之后的年份。

DateTime.Now.ToString(“yyMMddHHmmss”)
?我希望
local\u time->tm\u year%100
生成的数字不超过两位数。:-)我认为您应该添加基准年(历元)在1900中得到当前的一年。C++部分省略了20部分,因为你做的是代码> LoalAlth-Time> TMY% %100 < /Cord>。当然,2212和2112将给出相同的值@PanagiotisKanavos,下一个bug预计将在85年后出现,在此之前,我还计划将年份存储为2位数,当我的同事发现它时,我可能已经死了;)这个来吧截至1999年12月31日,数十亿美元被用于修复此类代码!新闻播音员担心连咖啡机都会停止工作!肖恩·康纳利(Sean Connery)和凯瑟琳·泽塔·琼斯(Catherine Zeta Jones)利用这一漏洞窃取了80亿美元!“不将字符串限制为两位数”如何将字符串限制为两位数?另一个函数可能与此函数类似,但从自定义日期结构来看,所以我需要知道如何限制为两位数,你能推断出有100%的Y2K错误吗?你建议如何解决这个问题?@Quser如果你担心你只捕获了一年中的最后两个数字,那么修复当然会包括所有4个数字。因此,只有在处理跨越100年的日期时,两位数才真正成为一个问题。如果你知道你工作的所有日期永远不会在未来,也不会超过20年,那么推断正确的世纪是很容易的。此外,我还包括如何使用<代码> % 100 <代码>将年份限制为两位数,就像C++代码中所说的那样。“如果你处理的日期可以超过100年,如果你知道所有的工作日期都不会在未来,而且永远不会超过过去的20年,那么推断正确的世纪是很容易的”。-如果你能详细解释一下,我会很感激的,我真的不明白。我想我也应该向我的同事们提出这个问题?如果你所有的日期都不是在未来,也不超过20年,那么你应该知道0-15是2000-2015年,95-99是1995-1999年。其他任何东西都是无效的。基本上,您可以使用当前日期来确定世纪应该是什么。这实际上取决于你的约会类型。但老实说,如果可能的话,最好只使用全部4位数字。
return DateTime.Now.ToString("yyMMddHHmmss");