如何在c#中组合整数

时间:2015-06-09 07:55:39

标签: c#

我正在寻找一种将整数组合在一起的方法。 我得到3个整数,我想从他们那里做一个。

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

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

我得到了小时,分钟和秒,想要结合起来,看起来像这样:

Hour : Minutes : Seconds

如何将整数组合起来做到这一点。

注意:我在互联网上看了一下,但我无法获得我想要的信息。

这就是我所看到的:

Combine two integers to create a unique number

How to combine 2 integers in order to get 1?

6 个答案:

答案 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");