用以計算y年月日與同年的月之間的天數(

import java.util.Scanner;

import org.junit.Test;


public class tt {


/**

* 用以計算y年m1月d1日與同年的m2月d2之間的天數(m2>=m1),並打印計算結果.

* 若m1=m2且d1=d2則算1天.在閏年時,2月有29天.閏年的年號由以下方式確定:

* 該年號能被4整除但不能被100整除,或者該年號能被400整除則是閏年.

* 例:輸入1997,2,27,3,10時,輸出爲從1997年2月27日到3月10日共有12天.

*/

boolean isleapyear;

@Test

public void test() {

// TODO Auto-generated method stub

@SuppressWarnings("resource")

Scanner ss = new Scanner(System.in);

System.out.println("請輸入年份");

int y = ss.nextInt();

System.out.println("請輸入月");

int m1 = ss.nextInt();

System.out.println("請輸入日");

int d1 = ss.nextInt();

System.out.println("請輸入另一個月");

int m2 = ss.nextInt();

System.out.println("請輸入另一個日");

int d2 = ss.nextInt();

if (y % 400 == 0 || y % 4 == 0 && y % 100 != 0) {

isleapyear = true;

} else {

isleapyear = false;

}

int day = 0;// 定義一個變量來計算天數

if (m1 > m2) {

// 打印不符合要求

System.out.println("不符合要求");

} else if (m1 == m2) {

// 特殊化處理相同月份

if (d1 > d2) {

// 打印不符合要求

System.out.println("不符合要求");

} else {

day = d2 - d1 + 1;

System.out.println("相隔天數爲:" + day);

}

} else {

// m1<m2

// 根據具體月份累加天數

int mmm = getDay(m1);

day = mmm - d1;

System.out.println(mmm);

for (int i = m1 + 1; i < m2; i++) {

day +=getDay(i);

}

day = day + d2 + 1;

System.out.println("相隔天數爲:" + day);


}

}



// 通過月份獲取天數;

public  int getDay(int mounth) {

int day = 0;

switch (mounth) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

// 這些月份是31天

day = 31;

break;

case 4:

case 6:

case 9:

case 11:

// 這些月份是30天

day = 30;

break;

case 2:

// 特殊化處理是否閏年

// TODO: 自己寫閏年判斷方法

if (isleapyear) {

day = 29;

} else {

day = 28;

}

break;

default:

// 一般不會進到這裏

break;


}

return day;

}

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章