如何在c#中组合整数
本文关键字:组合 整数 | 更新日期: 2023-09-27 17:54:38
我正在寻找一种将整数组合在一起的方法。我得到了3个整数,我想用它们做一个。
所有整数都持有一种时间货币,看起来有点像:
var date = DateTime.Now;
int timeHours = date.Hour;
我得到了小时、分钟和秒,想组合起来,所以它们看起来像这样:
Hour : Minutes : Seconds
我怎么能把整数组合在一起呢。
注意:我在网上找过,但找不到我要找的信息
这就是我看到的:
将两个整数组合以创建唯一的数字
如何将2个整数组合得到1?
组合这些整数将生成一个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
DateTime.Now
已经包含了您需要的所有信息,日期和时间。您所需要做的就是格式化此信息
有很多方法可以将两个(或多个(整数打包为一个基于在其范围内,例如
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;
您可以尝试下面的代码,我认为它很有用
var date = DateTime.Now;
var result = date.Hour + ":" + date.Minute + ":" + date.Second;
Console.WriteLine(result);
使用基数为10的数字系统的一个简单方法是只使用
var number = hours * 10000 + minutes * 100 + seconds
这会为15:09:36 返回一个类似150936的数字
转换回:
seconds = number % 100
minutes = (number / 100) % 100
hours = number / 10000
请注意,这显然不是最有效的方法,而是简单的
您应该使用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");