如何在c#中组合整数

本文关键字:组合 整数 | 更新日期: 2023-09-27 17:54:38

我正在寻找一种将整数组合在一起的方法。我得到了3个整数,我想用它们做一个。

所有整数都持有一种时间货币,看起来有点像:

var date = DateTime.Now;
int timeHours = date.Hour;

我得到了小时、分钟和秒,想组合起来,所以它们看起来像这样:

Hour : Minutes : Seconds

我怎么能把整数组合在一起呢。

注意:我在网上找过,但找不到我要找的信息

这就是我看到的:

将两个整数组合以创建唯一的数字

如何将2个整数组合得到1?

如何在c#中组合整数

组合这些整数将生成一个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");