将小数 (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;
}
有没有一种简单的方法可以将我的十进制值(例如 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;
}