将小数 (62.25) 转换为小时和分钟字符串(62 小时 15 分钟)?

Convert Decimal (62.25) to Hours and Minutes String (62 Hours and 15 Minutes)?

有没有一种简单的方法可以将我的十进制值(例如 62.25)转换为返回的字符串,例如“62 小时:15 分钟”?我一直在查看与此类似的几篇帖子 (Decimal Hour into Time?),但即使是说它们适用于大于 24 小时周期的数字的建议也不起作用。

这很简单:

var decimal = 62.25;

var hours = Math.floor(decimal);
var mins = 60 * (decimal - hours);

console.log(`${hours} hours, ${mins} minutes`);

在 c# 中,您可能只需要利用 TimeSpan class。见 .NET fiddle here:

using System;

public class Program
{
    public static void Main()
    {
        var dec = 62.25m;
        var ts = TimeSpan.FromHours((double)dec);

        Console.WriteLine("{0} Hours, {1} Minutes", Math.Floor(ts.TotalHours), ts.Minutes);
    }
}

这个问题真的很简单,这个答案也很简单,并且有很多基本的编程知识,而且有很多不同的方法。简单的一个是使用 cast:

double date = getDate(); //62.25. I don't know where you get date from :P
int hours = (int)date; //62
float minutes = 60* (date - hours); //60 * (62.25 - 62 ) = 15

Write( "Hours: " + hours + "\nMinutes: " + minutes );

如果分钟有小数点,请考虑进行验证(12.3 分钟应四舍五入等)

试试这个

void Main()
{
    Console.WriteLine (DecimalToTime(62.25)); // will output 62 Hours:15
}

string DecimalToTime(double dbTime)
{
    int hour = (int)dbTime;
    int minute = (int)((dbTime - hour) * 60);

    string time = hour + " Hours:" + minute;

    return time;

}