我有一个int个月(例如84个),我需要计算出使用84 = 7年等于多少年
我需要遍历初始数字并查看其中有多少个完整年份并打印结果
示例:
int count = 84;
for (int i = 12; i <= count; i++)
{
years = i;
}
这当然不起作用,它产生'84年',我应该生产7年。我还需要在年度计算后得到剩余的月份,所以如果初始数字是85,例如它将导致7年1个月。
答案 0 :(得分:7)
使用标准数学运算代替循环:
int count = 84;
int years = count / 12;
int months = count % 12;
因为count
和12
都是整数count/12
也会返回一个整数。因此,对于85
,它将返回7
,而不是7.1
。
的更新强> 的
循环版本看起来像这样:
count = 84;
years = 0;
for (int i = 12; i <= count; i += 12)
{
years++;
}
答案 1 :(得分:5)
使用循环执行此操作将如下所示:
int years = 0;
while (count >= 12) {
count -= 12;
years++;
}
但是,您可以在不循环的情况下执行相同的操作:
int years = count / 12;
count %= 12;
答案 2 :(得分:1)
试试这个:
DateTime t = new DateTime();
t = t.AddMonths(84);
int year = t.Year; // year = 8
int month = t.Month; // month = 1
答案 3 :(得分:0)
当然你只需要基本的数学运算:
int count = 84;
int years = (int)(count / 12);
int months = count % 12;
答案 4 :(得分:0)
int years = count / 12;
int remainingMonths = count % 12;
答案 5 :(得分:0)
我最终得到了这样的工作
int employmentInMonthsAmount = this.MaxEmploymentHistoryInMonths;
var intcounter = 0;
int years = 0;
for (var i = 0; i < employmentInMonthsAmount; i++)
{
if (intcounter >= 12)
{
years++;
intcounter = 0;
}
intcounter++;
}
var monthsleft = intcounter;