我的应用程序中有一个datagridview,它包含开始和结束时间.我想计算这两次之间的分钟数.到目前为止我有:
var varFinish = tsTable.Rows[intCellRow]["Finish Time"];
TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue;
int intMinutes = TimeSpan.FromMinutes(varTime);
Run Code Online (Sandbox Code Playgroud)
但最后一行不会编译,因为它说我使用Timespan构造函数的无效参数.我已经研究了很多关于如何计算两次之间的分钟数的问题,但是我有点像砖墙.有人可以告诉我实现目标的最佳方法.
编辑/
现在我的代码如下:
var varFinish = tsTable.Rows[intCellRow]["Finish Time"];
TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue;
int intMinutes = (int)varTime.TotalMinutes;
Run Code Online (Sandbox Code Playgroud)
但是我在第二行得到了无效的演员.varFinish和varValue都是时间,例如10:00和8:00.所以不确定为什么他们不会强制转换为DateTime?
Kan*_*ane 138
试试这个
DateTime startTime = varValue
DateTime endTime = varTime
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (minutes): " + span.TotalMinutes );
Run Code Online (Sandbox Code Playgroud)
Tim*_*ter 34
double minutes = varTime.TotalMinutes;
int minutesRounded = (int)Math.Round(varTime.TotalMinutes);
Run Code Online (Sandbox Code Playgroud)
TimeSpan.TotalMinutes:此实例表示的总分钟数.
在您的问题代码中,您使用TimeSpan.FromMinutes不正确.请参阅TimeSpan.FromMinutes 的MSDN文档,它提供以下方法签名:
public static TimeSpan FromMinutes(double value)
Run Code Online (Sandbox Code Playgroud)
因此,以下代码将无法编译
var intMinutes = TimeSpan.FromMinutes(varTime); // won't compile
Run Code Online (Sandbox Code Playgroud)
相反,您可以使用TimeSpan.TotalMinutes属性来执行此算法.例如:
TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue;
double fractionalMinutes = varTime.TotalMinutes;
int wholeMinutes = (int)fractionalMinutes;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104159 次 |
| 最近记录: |