我沒找什麼,但未能成功地找到一個解決方案的個體數。添加日期
有沒有辦法找到一個日期的數字的總和。 例如:如果日期是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對象。我必須迭代特定數量的日期並獲得總和。 –