日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8、实例:日期查询

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8、实例:日期查询 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本實例使用有關日期處理和日期格式化的類實現一個日期查詢的功能,即查詢指定日期所在周的周一日期、兩個指定日期間相差的天數和指定日期為所在周的星期幾的日期 3 個功能。

從功能上來看,本實例至少需要定義 3 個方法,分別完成:獲取指定日期所在周的周一日期、獲取兩個指定日期的相差天數以及獲取指定日期為所在周的星期幾的日期這 3 個功能,同時需要定義 Date 類型的日期與 String 類型之間的轉換方法。

(1) 新建 Exercise 類,在該類中導入需要的包。代碼如下:

import java.text.Parse Exception; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Exercise {// 在該類中有5個方法,在下面的步驟中將會講解,這里省略 }

(2) 在 Exercise 類中定義獲取指定日期所在周的周一日期的方法——getMonday(),該方法是一個靜態方法,返回值為 String 類型,并且需要傳遞一個 Date 類型的參數,然后將該日期參數作為 Calendar 對象的日期,并調用 Calendar 類的 set(int field,int value)方法改變 Calendar 對象中的日期,再將使用 SimpleDateFormat 類格式化后的日期返回。

getMonday() 方法的代碼實現如下: // 獲取指定日期所在周的周一日期 public static String getMonday(Date date) {Calendar c = Calendar.getInstance();c.setTime(date);c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); }

(3) 繼續在 Exercise 類中定義獲取兩個日期間相差天數的方法——getTwoDay(),該方法需要傳遞兩個 String 類型的參數。

在該方法的主體中,首先需要創建一個 SimpleDateFormat 類對象,并指定日期的格式,然后需要調用 SimpleDateFormat 對象的 parse() 方法,將傳遞過來的兩個 String 類型的日期轉換為 Date 類型,并將這兩個 Date 類型的日期進行運算,得出相差的天數,返回一個 int 類型的變量。

getTwoDay() 方法的代碼實現如下: // 獲取兩個日期間相差的天數 public static int getTwoDay(String sj1, String sj2) {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");int day = 0;try {Date date = myFormatter.parse(sj1);Date mydate = myFormatter.parse(sj2);// 計算兩個日期間相差的天數day = (int)((date.getTime()-mydate.getTime())/(24*60*60*1000));} catch(Exception e) {return 0;}return day; }

(4) 在 Exercise 類中繼續創建兩個靜態方法,分別完成 String 類型的日期與 Date 類型日期的互換功能。代碼如下:

// 將String類型的日期轉換為Date類型 public static Date strToDate(String strDate) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = null;try {date = sdf.parse(strDate);} catch(ParseException e) {e.printStackTrace();}return date; } // 將Date類型的日期轉換為String類型 public static String DateToStr(Date date) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");String strDate = sdf.format(date);return strDate; }

(5) 在 Exercise 類中定義獲取指定日期所在周的指定星期的日期方法——getWeek(),該方法需要傳遞兩個 String 類型的參數,其中第一個參數表示指定的日期,第二個參數表示星期幾。

在該方法的主體中,首先調用了 strToDate() 方法,將 String 類型的日期轉換為 Date 類型的日期,并將該日期作為 Calendar 類對象日期,然后判斷傳遞過來的第二個參數的值,使用 Calendar 類中的 set(int field,int value) 方法改變日期,從而將格式化后的日期返回。

getWeek() 方法的代碼實現如下:

// 獲得一個日期所在周的星期幾的日期,如要找出2011年5月1日所在周的星期一是幾號 // @param sdate所確定的日期形式2011-05-01 // @param num要確定的是周幾(1表示周一,2表示周二) // @return public static String getWeek(String sdate, String num) {// 再轉換為時間Date dd = strToDate(sdate);Calendar c = Calendar.getInstance();c.setTime(dd);int weekNo = Integer.parseInt(num);switch (weekNo) {case 1:c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY); //返回星期一所在的日期break;case 2:c.set(Calendar.DAY_OF_WEEK,Calendar.TUESDAY); //返回星期二所在的日期break;case 3:c.set(Calendar.DAY_OF_WEEK,Calendar.WEDNESDAY); //返回星期三所在的日期break;case 4:c.set(Calendar.DAY_OF_WEEK,Calendar.THURSDAY); //返回星期四所在的日期break;case 5:c.set(Calendar.DAY_OF_WEEK,Calendar.FRIDAY); //返回星期五所在的日期break;case 6:c.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY); //返回星期六所在的曰期break;case 7:c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY); //返回星期曰所在的日期break;}return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime()); }

(6) 創建測試類 Test,調用 Exercise 類的方法,完成查詢當前日期所在周的周一日期,并獲取本周的周一曰期與當前曰期相差的天數,同時還可以查詢本周中任意星期幾的曰期。代碼實現如下:

package com.common.mxl; import java.util.Date; import java.util.Scanner; import com.common.mxl.Exercise; public class Test {public static void main(String[] args) {Scanner input = new Scanner(System.in);Date date = new Date();String monday = Exercise.getMonday(date);System.out.print("這周一的日期為【"+monday+"】,");String nowStr = Exercise.DateToStr(date); // 將 Date 類型的日期轉換為 String 類型int num = Exercise.getTwoDay(nowStr,monday);System.out.print("與今天相差【"+num+"】天");SyStem.out.println("\n請輸入您要查詢本周星期幾的日期(1表示星期一,2表示星期二…):");String weekNo = input.next(); //獲取用戶輸入的星期int no = Integer.parseInt(weekNo);//將用戶輸入的星期轉換為int類型,以便使用switch語句String strWeekNo = "";switch(no) {case 1:strWeekNo = "星期一";break;case 2:strWeekNo = "星期二";break;case 3:strWeekNo = "星期三";break;case 4:strWeekNo = "星期四";break;case 5:strWeekNo = "星期五";break;case 6:strWeekNo = "星期六";break;case 7:strWeekNo = "星期日";break;}System.out.println("本周【"+strWeekNo+"】的日期為:"+Exercise.getWeek(nowStr,weekNo));} }

在本程序中,綜合使用了 Date 類、Calendar 類和 SimpleDateFormat 類完成了時間處理功能。在源碼中,多次使用 Calendar 類的 set(int field,int value) 方法來改變日期,從而獲取用戶查詢的日期。該方法在日期操作方面比較常用,大家需要熟練掌握該方法。

該程序的運行結果如下所示:

這周一的日期為【2018-10-15】,與今天相差【0】天 請輸入您要查詢本周星期幾的日期(1表示星期一,2表示星期二…)1 本周【星期一】的日期為:2018-10-15

總結

以上是生活随笔為你收集整理的8、实例:日期查询的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。