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ā)布平臺,僅提供信息存儲服務。
【社區(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)容
- 拿到這個題目,一定不少人都有點懵逼了,不過不要緊,仔細分析一下就很簡單。 我們只需要將每個月份的天數(shù)的臨界值找出來...
- 輸入某年某月某日,判斷這一天是這一年的第幾天。(格式 如:19870604) from builtins impo...