1. 程式人生 > >輸入某年某月某日,判斷這一天是一年的第幾天 的三種方式

輸入某年某月某日,判斷這一天是一年的第幾天 的三種方式

輸入某年某月某日,判斷這一天是一年的第幾天

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){ //1、定義相關的變數 int sumDays=0;//對應的總天數 //2、判斷是否為閏年並且月份大於2 若是總天數多一天 if((year%4==0&&year%100!=0||year%400==0)&&month>2){ sumDays=1;//將閏年的二月份多出的一天加上 } //3、加上之前幾個月的天數 for(int i=1;i<month;i++){ switch(i){ case
1: case 3: case 5: case 7: case 8: case 10: // case 12: sumDays+=31; break; case 4: case 6: case 9: case 11: sumDays+=30; break; case 2:sumDays+=28; } } //4、加上當月對應的天數 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){ //1、定義相關的變數 int sumDays=0;//對應的總天數 int[] monthDay={0,31,28,31,30,31,30,31,31,30,31,30};//對應月份的天數 //2、判斷是否為閏年並且月份大於2 若是2月份為29天 if((year%4==0&&year%100!=0||year%400==0)&&month>2){ monthDay[2]=29;//將閏年的二月份多出的一天加上 } //3、根據月份計算天數 for (int i = 0; i < month; i++) { sumDays+=monthDay[i]; } //4、加上當月對應的天數 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){ //1、建立例項 Calendar calendar = Calendar.getInstance(); //設定時間 month月 對應的 0-11 calendar.set(year, month-1, date); //3、得到對應的第幾天 int sumDays=calendar.get(Calendar.DAY_OF_YEAR); System.out.println(year+"年" +month+"月" +date+"日是今年的第 " +sumDays+" 天!"); } }