Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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#_Asp.net - Fatal编程技术网

C# 将字符串转换为一次又一次

C# 将字符串转换为一次又一次,c#,asp.net,C#,Asp.net,我正在将此格式“00.000”中的分数小时值转换为小时和分钟格式。所以'02.500'将是'02:30',我也必须反过来做 我做了一个测试来看看它是如何工作的 <% TimeSpan tspan; TimeSpan tspan2; string TimeString; string TimeString2; string Converted; double ConvTime; for (int HH = 0; HH

我正在将此格式“00.000”中的分数小时值转换为小时和分钟格式。所以'02.500'将是'02:30',我也必须反过来做

我做了一个测试来看看它是如何工作的

<%
    TimeSpan tspan;
    TimeSpan tspan2;   

     string TimeString;
     string TimeString2;
     string Converted;
     double ConvTime;
     for (int HH = 0; HH < 24; HH++)
     {
         for (int M1 = 0; M1 < 6; M1++)
         {
             for (int M2 = 0; M2 < 10; M2++)
             {
                 TimeString = HH.ToString() + ":" + M1.ToString() + M2.ToString();

                 // Convert Time String to Fractional Hours 
                 tspan = TimeSpan.Parse(TimeString);
                 ConvTime = Convert.ToDouble(tspan.TotalHours);
                 Converted = String.Format("{0:00.000}", ConvTime);

                 // Convert Fractional Hour String to Time String
                 tspan2 = TimeSpan.FromHours(Convert.ToDouble(Converted));
                 TimeString2 = string.Format("{0:D1}:{1:D2}", tspan2.Hours, tspan2.Minutes);


                 Response.Write(TimeString + " = ");
                 Response.Write(Converted + " = ");
                 Response.Write(TimeString2 + "<br>");
             }
         }
     }     
%> 
正如你所看到的,我开始的并不总是我结束的

如何将时间值字符串“HH:MM”正确转换为小数字符串“00.000”,然后再正确转换回来

谢谢

编辑:

我试过这个

 TimeString = "02:02";
 Converted = TimeSpan.Parse(TimeString).TotalHours.ToString("00.000");

 tspan2 = TimeSpan.FromHours(Convert.ToDouble(Converted));
 TimeString2 = string.Format("{0:D1}:{1:D2}", tspan2.Hours, tspan2.Minutes);

但是我被转换为=“02.033”和TimeString2=“2:01”。它应该等于“2:02”。我在想,当我强制将其设置为“00.000”时,我失去了剩余部分。为什么不使用DateTime.Parse?

将字符串转换为小时,请使用以下命令:

string time = "1:30";
double hours = TimeSpan.Parse(time).TotalHours; // -> 1.5
double hours = 1.5;
string time = TimeSpan.FromHours(hours).ToString(); // -> "00:01:30"
相反,您可以使用以下方法:

string time = "1:30";
double hours = TimeSpan.Parse(time).TotalHours; // -> 1.5
double hours = 1.5;
string time = TimeSpan.FromHours(hours).ToString(); // -> "00:01:30"