Java 添加日期的单个数字

Java 添加日期的单个数字,java,python,Java,Python,我确实在寻找一些东西,但未能成功找到解决方案 有没有办法找到一个日期的数字之和。 例如:如果日期是2016-03-14,我想将所有数字相加,得到17的总数 如果我能在python或java中得到答案,我将不胜感激(我知道这是一个奇怪的请求,但我个人喜欢使用python,但在专业上我使用java,因此,了解这两种语言的信息对我非常有益。) 编辑1:我必须迭代特定的天数(包括日期、月、年),并将日期的各个数字相加以得到总和。Hmm。 比如: int sum = getDigits(date.get(

我确实在寻找一些东西,但未能成功找到解决方案

有没有办法找到一个日期的数字之和。 例如:如果日期是
2016-03-14
,我想将所有数字相加,得到
17
的总数

如果我能在python或java中得到答案,我将不胜感激(我知道这是一个奇怪的请求,但我个人喜欢使用python,但在专业上我使用java,因此,了解这两种语言的信息对我非常有益。)

编辑1:我必须迭代特定的天数(包括日期、月、年),并将日期的各个数字相加以得到总和。

Hmm。 比如:

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;
}

我不知道您为什么要这样做,但这里有一个简单的方法,通过使用和迭代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([int(c) for c in str(date) if c.isdigit()])

您可以简单地执行以下操作:

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。它是一个
日期
对象。我必须迭代特定数量的日期,然后得到总和。哦,对不起,这是日历对象的。它不是字符串。我在python中使用
datetime
,因为我需要迭代几天。然后使用
str(date)
,将其转换为字符串,如答案所示。yes会这样做。因为答案很简单,我将删除这个问题。你有很多答案,因为有几个人已经投入了精力来解决你的问题。我知道我现在听起来很愚蠢,但我改变了主意,我不会删除它。
sum([int(c) for c in str(date) if c.isdigit()])
int sum = 0;
for(char c : str.toCharArray()) {
    if( Character.isDigit(c) ) sum += (c-'0'); 
}
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;