C#是否可以将DateTime格式转换为整数或浮点数?

时间:2011-05-24 00:52:41

标签: c# datetime

我在这里遇到了一些麻烦。 做了一些关于谷歌的研究,但我似乎无法找到我正在寻找的东西。 我正在尝试以hh:mm格式请求两个输入(日期时间),为另一个减去一个,然后以分钟为单位返回该值的结果。 问题是我想将该值作为整数返回,我似乎无法找到正确的方法。 在C / C ++中我不会有这种问题...... 无论如何,这里是我正在谈论的片段。

private int DuraçaoTreino(DateTime dtInicioTreino, DateTime dtFimTreino, int dtDuraçao)
{
    Console.WriteLine("Introduza a hora de inicio (hh:mm): ");
    dtInicioTreino = Convert.ToDateTime(Console.Read());
    Console.WriteLine("Introduza a hora de fim (hh:mm): ");
    dtFimTreino = Convert.ToDateTime(Console.Read());
    dtDuraçao = (dtFimTreino - dtInicioTreino); // duração da sessão de treino
    dtDuraçao = Convert.ToDecimal(Console.Read());
    return dtDuraçao;                  
} 

这就是它......我是C#的新手,所以如果你看错了,请善待。

提前致谢。

3 个答案:

答案 0 :(得分:3)

您所谈论的是TimeSpan

DateTime dtBegin   = new DateTime(2011,5,1,22,0,0) ; // 10pm 1 May 2011
DateTime dtEnd     = new DateTime(2011,5,1,23,0,0) ; // 11pm 1 May 2011
TimeSpan tmElapsed = dtEnd - dtBegin ;               // tmElapsed is a TimeSpan with a value of 60 minutes

要返回分钟,请执行以下操作:

int elapsedTimeInMinutes = (int) Math.Round( tmElapsed.TotalMinutes , 0 ,MidpointRounding.ToEven ) ;

答案 1 :(得分:2)

var timeInMinutes = new DateTime(2011, 12, 25).Subtract(new DateTime(2010, 1, 1)).TotalMinutes;

您可以使用DateTime.Parse,或者更好的DateTime.ParseExact将字符串转换为日期时间,而不是使用我使用的构造函数创建DateTime对象。 (我知道我只在这里使用日期部分,但如果你愿意,你只选择使用时间部分)

答案 2 :(得分:0)

将DateTime对象转换为TimeSpan,减去并调用TimeSpan.TotalMinutes(或者像那样 - 不要手头有VS):

DateTime dt1, dt2;

//指定一些日期,然后:

TimeSpan ts = dt2 - dt1;

双分钟= ts.TotalMinutes;