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

package Demo14Day_Check;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Day_Check {
    /**
     * 輸入某年某月某日,判斷這一天是這一年的第幾天?
     */
    /*
    分析:這道例題顯然用到了Date類和Calender類
         * 用戶輸入的日期是一個字符串,要通過SimpleDateFormat類的parse()方法來將這個字符串格式化為日期對象
         * 使用Date類的getTime()方法來將日期對象轉(zhuǎn)換成毫秒值
         * 得使用一個字符串的拼接得到當年的一月一日日期對象
         * 用客戶輸入的日期毫秒值減去當年一月一日的毫秒值,再除以60再除以60再除以24即可得到具體過了多少天
     */
    public static void main(String[] args) {
        // 定一個SimpleDateFormat的格式化規(guī)則
        SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.dd");
        // 獲取用戶的輸入
        System.out.println("請輸入日期:(格式為:yyyy.MM.dd)");
        Scanner sc = new Scanner(System.in);
        String day = sc.next();
        // 對用戶輸入的字符串進行解析,解析為一個Date對象
        Date date=null;
        try {
            date = sd.parse(day);
        } catch (ParseException e) {
            System.out.println("您輸入的日期格式不對,請輸入正確的日期格式,為:(yyyy.MM.dd)");
        }
        // 獲取用戶輸入的年數(shù),并在后面拼接上一月一日
        String year = day.split("\\.")[0];
        year = year+".01.01";
        // 對一月一日也進行解析,解析為一個Date對象
        Date date01 = null;
        try {
            date01 = sd.parse(year);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 把獲取到的兩個date對象轉(zhuǎn)換成毫秒值
        long date_input = date.getTime();
        long date_orign = date01.getTime();
        // 計算毫秒值差并轉(zhuǎn)換成天數(shù)
        long distance = date_input-date_orign;
        // 為啥要加個1嘞,是因為一月一號是第一天啊,前面的算法是把這一天當?shù)?天算的
        long checkedday = (distance/1000/60/60/24)+1;
        System.out.println("您輸入的這一天是今年的第"+checkedday+"天。");
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容