java中日期计算2月份_计算两日期间2月29日总数的Java程序
事先聲明,本人僅僅是個計算機領域的新手,不久前開始學習Java。后來我接到了一份關于計算兩日期間2月29日總數的編程作業,倉促之中我便寫下了這個程序。由于之前可以說毫無編程經驗,Java也僅僅是只學了一小部分。所以目前該程序尚未解決輸入問題。
我解決這個問題的思路是:
編寫一個方法(leapYear)用于判斷某一年份是否為閏年;
編寫另一個方法(dateExist)用于判斷某一時期是否真實存在,在這方法中會引用到上個方法;
最后編寫main方法,引用方法(dateExist)分別判斷起始日期和終止日期是否真實存在;
倘若均真實存在。假如起始和終止日期不在同一年,這對起始和終止年份之間的年份枚舉,把閏年總數計算出來,在這過程中引用方法(leapYear);不真實存在則顯示提示。
最后判斷起始和終止年份是否為閏年及起始/終止月份是否小于/大于2月,并把符合條件的2月29日算出,在這過程中也須引用方法leapYear。
以下是我的代碼:
public class LeapYearComputing
{
//判斷某一年份是否為閏年。
public static boolean leapYear(int y) {
boolean leapYear;
if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
leapYear = true;
}
else {
leapYear = false;
};
return leapYear;
};
//判斷某一日期是否存在。
public static boolean dateExist(int year ,int month ,int date) {
boolean dateExist;
if (year > 0 ) {
if (month > 0 && month < 13) {
if (date > 0 && date < 32) {
switch(month) {
case 2:
if (leapYear(year)) {
if (date < 30) {
dateExist = true;
}
else {
dateExist = false;
};
}
else if (date < 29) {
dateExist = true;
}
else {
dateExist = false;
};
break;
case 4:
case 6:
case 9:
case 11:
if (date < 31) {
dateExist = true;
}
else {
dateExist = false;
};
break;
default:
if (date < 32) {
dateExist = true;
}
else {
dateExist = false;
};
};
}
else {
dateExist = false;
};
}
else {
dateExist = false;
};
}
else {
dateExist = false;
};
return dateExist;
};
//計算兩日期間2月29日數目。
public static void main(String[] args) {
int year1 = 9011;?????????? //請輸入起始年份。
int month1 = 12;???????????? //請輸入起始月份。
int date1 = 29;???????????? //請輸入起始日期。
int year2 = 12012;?????????? //起輸入終止年份。
int month2 = 2;???????????? //請輸入終止月份。
int date2 = 29;???????????? //請輸入終止日期。
int result = 0;
int Year = year1 + 1;
if (dateExist(year1,month1,date1)) {
if (dateExist(year2,month2,date2)) {
while (Year < year2 ) {
if (leapYear(Year)) {
result ++;
};
Year ++;
};
if (year1 == year2 && leapYear(year1)) {
result --;
};
if (month1 <= 2 && leapYear(year1)) {
result ++;
};
if (month2 > 2 ||? (month2 == 2 && date2 == 29) && leapYear(year2)) {
result ++;
}
System.out.println("兩日期之間的2月29日有" + result + "個。");
}
else {
System.out.println("終止日期并不真實存在!");
};
}
else {
System.out.println("起始日期并不真實存在!");
};
};
}
PS:本程序不考慮公元前年份。我原本考慮公元前的情況,但慮及公元前并無公元紀年,而且關于閏年的定義極有可能不在適用,便把年份限定在公元后。
當起始和終止年份在同一年,且這一年是閏年的情況下,應將閏年數減一。
各位若發現該程序的不足之處或有更好的算法,還望多多指教。
總結
以上是生活随笔為你收集整理的java中日期计算2月份_计算两日期间2月29日总数的Java程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: selenium java sessio
- 下一篇: java中spring的级别_java