[英]splitting a 6 digit integer in C#
我有一个6位整数,让我们说“153060”,我想分成
int a = 15(前2位),
int b = 30(后2位数),
int c = 60(第3位数),
首先要想到的是将int转换为字符串,使用SubString(或变体)将其拆分,然后转换回int。
这似乎是一种非常低效的方法。 任何人都可以推荐更好/更快的方法来解决这个问题吗?
谢谢!
附加信息:拆分int的原因是因为6位整数代表HHMMSS,我想用它来创建一个新的DateTime实例:
DateTime myDateTime = new DateTime(年,月,日,a,b,c);
但是,用户字段只能接受整数。
int y = number / 10000;
int m = (number - y*10000) / 100;
in d = number % 100;
如果你的最终目标是一个DateTime
,你可以使用TimeSpan.ParseExact
提取TimeSpan
从字符串,然后将其添加到DateTime
:
TimeSpan time = TimeSpan.ParseExact(time, "hhmmss", CultureInfo.InvariantCulture);
DateTime myDateTime = new DateTime(2011, 11, 2);
myDateTime = myDateTime.Add(time);
(假设> = .NET 4)
这样的事怎么样?
int i = 153060;
int a = i / 10000;
int b = (i - (a * 10000)) / 100;
int c = (i - ((a * 10000) + (b * 100)));
你可以这样做,而无需转换为字符串:
int a = 153060 / 10000;
int b = (153060 / 100) % 100;
int c = 153060 % 100;
我不确定与转换为字符串相比有多高效。 我认为这只是4次操作。 所以它可能会更快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.