如何获取年份最后一位及最后两位的int类型数值?
解决年份最后一位/两位的int提取问题
嘿,我来帮你搞定这两个年份数值提取的需求!你的现有代码思路不太对(IndexOf((char)1)是在找字符位置,不是提取末尾数字),下面给你两种高效的解决方案,优先推荐数学运算的方式,因为不需要额外的字符串转换,性能更好:
一、获取年份最后一位的int数值
如果你的formModel.JamKeluar.Year本身就是int类型(DateTime的Year属性确实是int),直接用取模运算就能搞定:
int year = formModel.JamKeluar.Year; int lastDigit = year % 10; // 2021的话结果就是1
原理很简单:任何整数对10取模,得到的就是它的最后一位数字。
如果非要用字符串处理的方式(不推荐,但也可以实现):
string yearStr = formModel.JamKeluar.Year.ToString(); int lastDigit = int.Parse(yearStr.Substring(yearStr.Length - 1));
二、获取年份最后两位的int数值
同样优先用数学运算,对100取模即可:
int year = formModel.JamKeluar.Year; int lastTwoDigits = year % 100; // 2021的话结果就是21
对100取模会保留整数的最后两位,完全符合你的需求。
字符串处理方式:
string yearStr = formModel.JamKeluar.Year.ToString(); int lastTwoDigits = int.Parse(yearStr.Substring(yearStr.Length - 2));
补充说明
你的原有代码int aas = year.IndexOf((char)1);是在查找字符串中ASCII码为1的字符的位置,这和提取末尾数字的需求完全不相关,所以才得不到预期结果哦。
内容的提问来源于stack exchange,提问作者Roby
相关产品推荐
相关产品推荐

