我没找什么,但未能成功地找到一个解决方案的个体数。添加日期
有没有办法找到一个日期的数字的总和。 例如:如果日期是2016-03-14
我想补充了所有的数字来得到总的17
。我真的很感激,如果我可以得到Python或Java答案(我知道这是奇怪的请求,但我个人喜欢使用Python,但专业我使用Java因此,知道这些信息这两种语言将是真正有益的我)
Edit_1:我有遍历天的具体数量(包括日,月,年),并添加日期的个别数字得到的总和。
我没找什么,但未能成功地找到一个解决方案的个体数。添加日期
有没有办法找到一个日期的数字的总和。 例如:如果日期是2016-03-14
我想补充了所有的数字来得到总的17
。我真的很感激,如果我可以得到Python或Java答案(我知道这是奇怪的请求,但我个人喜欢使用Python,但专业我使用Java因此,知道这些信息这两种语言将是真正有益的我)
Edit_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;
}
哦,对不起,它是用于Calendar对象的。 – Eva
我不知道为什么你要做到这一点,但这里是使用和迭代字符数组做它在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
的Java:
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()])
它不是一个字符串。我在Python中使用'datetime',因为我必须迭代几天。 –
将其转换为字符串,然后使用'str(date)',如答案中所示。 –
是的,会做到这一点。因为答案很简单,我将删除这个问题。 –
你可以简单地这样做:
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;
只是重复数字,并添加他们是他们是数字? –
日期是'Date'对象还是'String'? – Maljam
@Maljam。它是一个Date对象。我必须迭代特定数量的日期并获得总和。 –