* 用戶輸入商品生產日期和保質期(天數),通過程序計算促銷日期。
* 計算規則為:到保質期前14天所在周的周三為促銷日。
/** * 用戶輸入商品生產日期和保質期(天數),通過程序計算促銷日期。 * 計算規則為:到保質期前14天所在周的周三為促銷日。控制台交互情況如圖-1所示 * 思路: * 1. 用戶輸入生產日期和保質期(天數),就可以求出 過期日期 * 2. 通過過期日期減去14天即為促銷日期所在的周 * 3. 通過所在周求出周三的日期 * 算法: * 1.通過用戶輸入的兩個日期,轉換生產日期字符串為DATE類型,然后通過calendar進行加30天的計算,求出過期的日期 * 2.通過calendar的過期日期,減去14天,計算出促銷日期所在周 * 3.設置calendar的為周三,即為促銷日 * 4.轉換為DATE在轉換為STR輸出。 * */ public class HomeWork01 { public static void main(String[] args) throws ParseException { Scanner s = new Scanner(System.in); System.out.println("請輸入生產日期(yyyy-MM-dd)"); //用戶輸入生產日期 String produceDate_usr = s.next(); //用戶輸入保質期(天數) System.out.println("請輸入保質期(天數)"); int badDays_usr = s.nextInt(); //根據用戶輸入的兩個日期,求出過期日期為 //首先,需要SDF定義時間格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //Str --- Data 用 sdf.prase(produceDate_usr) Date produceDate = sdf.parse(produceDate_usr); //然后轉換date為了進行calendar計算加30天的記過 //Date ---- Calendar 用 calendar.setTime() //前提:先建立Calendar實例 Calendar calendar = Calendar.getInstance(); calendar.setTime(produceDate); //轉換完成進行計算,先加30天保質期,用 calendar.add(Calendar.Day_Of_Year,30) calendar.add(Calendar.DAY_OF_YEAR, badDays_usr ); //加完30天減去14天 calendar.add(Calendar.DAY_OF_YEAR, -14); //已經到促銷的這周,設置周三的日期 // System.out.println(calendar.getTime()); calendar.set(Calendar.DAY_OF_WEEK, 4); //計算完畢,Calendar ---- Data 用calendar.getTime() // System.out.println(calendar.getTime()); Date goodDate = calendar.getTime(); //然后Date轉換成字符串形式輸出 Date ---- Str用 sdf.format(goodDate); String result = sdf.format(goodDate); //輸出結果 System.out.println("促銷日期:"+result); } }
