C#StringFormatforHoursandMinutesforDecimalsandHoursfractionofhours并显示为小时和分钟?例如:5.5被格式化为显示5小时30分钟。我很乐意自己编写代码,但如果可以的话,我更愿意使用现有函数decimalt=5.5M;Console.WriteLine(TimeSpan.FromHours((double)t).ToString());那会给你“05:30:00”,这是非常接近的。然后您可以将其格式化为您想要的结果:varts=TimeSpan.FromHours((double)t);Console.WriteLine("{0}小时{1}分钟",ts.Hours,ts.Minutes);请注意,从decimal到double的转换可能会导致精度损失,但我认为这在分钟尺度上并不明显。对类型系统有类似Skeet理解的人可能会在这里发表意见。我根据Matt的评论为此编写了一个小辅助方法。对于某些人来说,保存自己的作品可能会有用。///转换小数,例如1.5到1小时30分钟///转换为双精度的时间//////返回格式为的字符串:///x小时x分钟///x小时(如果有nominutes)///xminutes(ifthere'snohours)///如果需要,也会将单词复数,例如1小时或3小时///publicStringconvertDecimalToHoursMinutes(doubletime){TimeSpantimespan=TimeSpan.FromHours(time);inthours=timespan.Hours;intmins=timespan.Minutes;//转换为小时和分钟StringhourString=(hours>0)?string.Format("{0}"+pluraliseTime(hours,"hour"),hours):"";字符串minString=(mins>0)?string.Format("{0}"+pluraliseTime(mins,"minute"),mins):"";//如有必要,在小时和分钟之间添加一个空格return(hours>0&&mins>0)?hourString+""+minString:hourString+minString;}///根据时间量将小时或分钟复数化///小时数或分钟数///要复数的词,例如“hour"or"minute"///返回正确的英文复数形式,例如3小时、1分钟、0分钟publicStringpluraliseTime(intnum,Stringword){return(num==0||num>1)?word+"s":word;}如果你的时间超过24小时,你要考虑TimeSpan类有一个Days属性,而Hours属性会循环这样的东西,以防止超过24小时的任何错误:以上是C#学习教程:C#StringFormatting代表小数和小时的小时和分钟分享了所有内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注—vartsExample=TimeSpan.FromHours(timeInDecimal);varresult=$"{tsExample.Hours+(tsExample.Days*24):00}:{tsExample.Minutes:00}";本文来源于网络,不代表立场。如涉及侵权,请点击维权联系管理员删除,如需转载请注明出处:
