我确实找了些东西,但无法成功找到解决方案。
有没有办法找到日期数字的总和。
例如:如果日期为2016-03-14
,我想将所有数字相加以获得17
的总数。
如果我能在python或java中得到答案,我将非常感激(我知道这是奇怪的请求但我个人喜欢使用python但是专业我使用java因此,知道这些信息这两种语言对我来说真的很有用。)
Edit_1:我必须迭代特定天数(包括日期,月份,年份)并添加日期的各个数字以获得总和。
答案 0 :(得分:2)
爪哇:
int total = 0;
String str = date.toString();
for (int i = 0; i < str.length(); ++i) {
if (Character.isDigit(str.charAt(i))) {
total += Character.getNumericValue(str.charAt(i));
}
}
的Python:
total = 0
string = str(date)
for c in string:
if c.isdigit():
total += int(c)
或者,作为列表理解:
sum([int(c) for c in str(date) if c.isdigit()])
答案 1 :(得分:1)
嗯。 类似的东西:
int sum = getDigits(date.get("YEAR")) + getDigits(date.get("MONTH")) + getDigits(date.get("DAY_OF_MONTH"));
public int getDigits(int num) {
int sum = 0;
while (num > 0) {
sum = sum + num % 10;
num = num / 10;
}
return sum;
}
答案 2 :(得分:1)
我不知道你为什么要这样做但是这里是一个通过使用和迭代char数组在JAVA中完成它的简单方法。
以下是代码段:
public static void main (String[] args)
{
String date = "2016-03-14";
char[] input = date.toCharArray();
int sum = 0;
for(char c : input) {
if((int)(c - '0') >= 0 && (int)(c - '0') <=9)
sum += (int)(c - '0');
}
System.out.println("Sum: " + sum);
}
输出:
Sum: 17
答案 3 :(得分:1)
您可以简单地执行以下操作:
int sum = 0;
for(char c : str.toCharArray()) {
if( Character.isDigit(c) ) sum += (c-'0');
}
如果您的日期是Date
对象:
int sum = 0;
for(int year = date.getYear() ; year > 0 ; year /= 10) sum += year%10;
for(int month = date.getMonth() ; month > 0 ; month /= 10) sum += month%10;
for(int date = date.getDate() ; date > 0 ; date /= 10) sum += date%10;