输入某年某月某日,判断这一天是一年的第几天
package arithmetic;
import java.util.Calendar;
/**
* 输入某年某月某日,判断这一天是一年的第几天?
*
* @author sunRainAmazing
*
*/
public class GetDayOfYear {
public static void main(String[] args) {
getDay_switchCase(2017,1,10);
getDay_switchCase(2017,3,10);
getDay_array(2017,1,10);
getDay_array(2016,3,10);
getDay_Calendar(2016,1,10);
getDay_Calendar(2017,3,10);
}
/**
* 求输入相应的年月日,输出对应的多少天
* 采用switch case形式
* @param year 年
* @param month 月
* @param day 日
*/
public static void getDay_switchCase(int year,int month,int day){
int sumDays=0;
if((year%4==0&&year%100!=0||year%400==0)&&month>2){
sumDays=1;
}
for(int i=1;i<month;i++){
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
sumDays+=31;
break;
case 4:
case 6:
case 9:
case 11:
sumDays+=30;
break;
case 2:sumDays+=28;
}
}
sumDays+=day;
System.out.println(year+"年"
+month+"月"
+day+"日是今年的第 "
+sumDays+" 天!");
}
/**
* 求输入相应的年月日,输出对应的多少天
* 采用数组的形式
* @param year 年
* @param month 月
* @param day 日
*/
public static void getDay_array(int year,int month,int day){
int sumDays=0;
int[] monthDay={0,31,28,31,30,31,30,31,31,30,31,30};
if((year%4==0&&year%100!=0||year%400==0)&&month>2){
monthDay[2]=29;
}
for (int i = 0; i < month; i++) {
sumDays+=monthDay[i];
}
sumDays+=day;
System.out.println(year+"年"
+month+"月"
+day+"日是今年的第 "
+sumDays+" 天!");
}
/**
* 求输入相应的年月日,输出对应的多少天
* 采用日期类的 Calendar形式
* @param year 年
* @param month 月
* @param date ---day 日
*/
public static void getDay_Calendar(int year,int month,int date){
Calendar calendar = Calendar.getInstance();
calendar.set(year, month-1, date);
int sumDays=calendar.get(Calendar.DAY_OF_YEAR);
System.out.println(year+"年"
+month+"月"
+date+"日是今年的第 "
+sumDays+" 天!");
}
}