Java如何拆分日期逐位求和并最终得到单个数字结果
实现方案
核心思路
- 首先将用户选择的日期转为字符串格式,过滤掉所有非数字的分隔符(如
/、-等),得到纯数字组成的字符串 - 遍历纯数字字符串的每一位字符,转为整数后累加得到第一次求和结果
- 对第一次求和结果计算数字根:循环拆分各位数字相加,直到得到1~9之间的单个数字
Java 代码实现
public class DateDigitCalc { public static void main(String[] args) { // 此处inputDate可直接替换为日历组件返回的日期字符串 String inputDate = "4/7/1995"; // 第一步:提取所有数字逐位求和 int sum = 0; for (char c : inputDate.toCharArray()) { if (Character.isDigit(c)) { sum += c - '0'; } } // 第二步:计算数字根得到单个数字结果,以下二选一即可 // 写法1:循环拆分逻辑,可读性更强 while (sum > 9) { int temp = 0; while (sum > 0) { temp += sum % 10; sum /= 10; } sum = temp; } // 写法2:数学公式简化,代码更简洁,和写法1效果完全一致 // sum = (sum - 1) % 9 + 1; // 最终结果存在sum变量中,可直接供后续逻辑使用 System.out.println("计算结果:" + sum); } }
方案优势
- 无需提前拆分日期的月、日、年字段,自动适配
M/d/yyyy、MM/dd/yyyy、yyyy-MM-dd等多种常见日期格式 - 无需用户逐位输入数字,全程自动处理日期字符串
内容的提问来源于stack exchange,提问作者user16250914
相关产品推荐
相关产品推荐

