将余数保存在变量中

问题描述:

我想如何将余数保存在变量中。将余数保存在变量中

:计算数秒到数小时:

用户输入524000(秒)

答案14H 33M 20S

我会做这样的事情:

console.writeline("Enter seconds") 
int seconds = int.parse(console.readline()); 
int hours = seconds/3600; 
console.writeline("Seconds calculated in hours = {0}",hours); 

其余的是2000秒除以60 = 33和余下的20个。
但是我怎样才能将这个余数保存在另一个变量?

+1

使用模(http://www.dotnetperls.com/modulo ),如:秒%3600. – 2013-04-10 08:54:49

使用模运算符(%),但对于这个问题使用TimeSpan会不会更容易?

TimeSpan span = TimeSpan.FromSeconds(5400); 

然后当然会显示答案。 (提示:的String.Format())

+0

+1。这是一个更好的方法来做到这一点。 – 2013-04-10 09:04:14

+0

我的主要目标不是做到最有效的方式,而是锻炼。但是,谢谢你,你的答案都尝试过,它的工作。 – user2022298 2013-04-10 15:56:51

+0

@ user2022298啊,我也提供了原始问题的答案,但也展示了最有效的方式,所以我希望它可以帮助你:) – joell 2013-04-10 16:09:45

你可以这样计算的话:

2000/60 = 33 ==> (2000 - (33*60) = 20) 

或者使用modulo操作:

2000 % 60 = 20 

使用iVisions实现,但如果你要计算其他值的剩余使用模

int remainder = seconds % 3600 

http://www.dotnetperls.com/modulo

除了TimeSpan.FromSeconds%操作,您可以使用Math.DivRem方法:

int hours = Math.DivRem(seconds, 3600, out seconds); 
int minutes = Math.DivRem(seconds, 60, out seconds);