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

问题描述

| 我在这里遇到麻烦。 在Google上做了一些研究,但我似乎找不到我想要的东西。 我试图以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#的新手,所以如果您发现任何错误,请多多关照。 提前致谢。     

解决方法

您在说的是
TimeSpan
DateTime dtBegin   = new DateTime(2011,5,1,22,0) ; // 10pm 1 May 2011
DateTime dtEnd     = new DateTime(2011,23,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,MidpointRounding.ToEven ) ;
    ,
var timeInMinutes = new DateTime(2011,12,25).Subtract(new DateTime(2010,1)).TotalMinutes;
可以使用DateTime.Parse,或者最好使用DateTime.ParseExact将字符串转换为日期时间,而不是使用我使用的构造函数创建DateTime对象。 (我知道我在这里仅使用日期部分,但如果愿意,您只选择使用时间部分)     ,将DateTime对象转换为TimeSpan \,减去并调用TimeSpan.TotalMinutes(或诸如此类-不要在手边使用VS):
DateTime dt1,dt2;
//指定一些日期,然后:
TimeSpan ts = dt2 - dt1;
double minutes = ts.TotalMinutes;