我正在寻找一种将整数组合在一起的方法。 我得到3个整数,我想从他们那里做一个。
所有整数都持有时间货币,看起来有点像这样:
var date = DateTime.Now;
int timeHours = date.Hour;
我得到了小时,分钟和秒,想要结合起来,看起来像这样:
Hour : Minutes : Seconds
如何将整数组合起来做到这一点。
注意:我在互联网上看了一下,但我无法获得我想要的信息。
这就是我所看到的:
答案 0 :(得分:3)
组合这些整数将生成string
,而不是另一个整数。您可以使用ToString()
方法轻松格式化DateTime
;
var str = DateTime.Now.ToString("H':'m':'s"); // eg: 11:0:2
如果您想获得小时,分钟和小时 前导零的单位数字,则可以改为使用HH:mm:ss
格式。
var str = DateTime.Now.ToString("HH':'mm':'ss"); // eg: 11:00:02
答案 1 :(得分:2)
DateTime.Now
已包含您需要的所有信息,日期和时间。您需要做的只是format this information
答案 2 :(得分:2)
有很多方法可以将两个(或许多)整数打包成一个整数 在他们的范围内,例如
int i1 = 123;
int i2 = 456;
// two 32-bit integers into 64-bit one
long result = (((long) i1) << 32) | i2;
在您的特定情况下
int hours = 5;
int minutes = 10;
int seconds = 59;
int combined = hours * 3600 + minutes * 60 + seconds;
反向:
int combined = 12345;
int seconds = combined % 60;
int minutes = (combined / 60) % 60;
int hours = combined / 3600;
答案 3 :(得分:1)
你可以尝试下面的代码,我觉得它很有用
var date = DateTime.Now;
var result = date.Hour + ":" + date.Minute + ":" + date.Second;
Console.WriteLine(result);
答案 4 :(得分:1)
使用基数为10的系统的简单方法就是
var number = hours * 10000 + minutes * 100 + seconds
这将为15:09:36返回150936之类的数字
转换回来:
seconds = number % 100
minutes = (number / 100) % 100
hours = number / 10000
请注意,这显然不是最有效的方法,而是简单的
答案 5 :(得分:0)
您应该使用format
函数强制转换为字符串,例如:
string result = string.Format("{0:00}:{1:00}:{2:00}", timeHours, timeMinutes, timeSeconds);
要完成:
格式HH:mm:ss
:
string result = string.Format("{0:00}:{1:00}:{2:00}", timeHours, timeMinutes, timeSeconds);
string result = DateTime.Now.ToString("HH:mm:ss");
格式H:m:s
:
string result = string.Format("{0}:{1}:{2}", timeHours, timeMinutes, timeSeconds);
string result = DateTime.Now.ToString("H:m:s");