Java Caledar類(日歷類)如何判斷本周周數(shù)
更新時間:2024年06月05日 11:08:28 作者:遠離bug,珍愛頭發(fā)
這篇文章主要介紹了Java Caledar類(日歷類)如何判斷本周周數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
Java Caledar類判斷本周周數(shù)
思路
- 首先創(chuàng)建SimpleDateFormat將時間格式化
- 創(chuàng)建Calendar類,因為是抽象類,所以不能用new方法,而是使用getInstance。
- 外國人認為每周的第一天是周日,中國人認為每周的第一天是周一。所以要先調(diào)用setFirstDayOfWeek方法將周一設(shè)置為每周的第一天
- 首先獲取本地時間計算當(dāng)前周數(shù):使用Calendar 類中的WEEK_OF_YEAR
- 獲取目標日期計算周數(shù)
- 得到的周數(shù)是int類型,所以進行數(shù)值比較
解決問題
- 打印本周賬單、判斷活動的期限等。
- 獲取當(dāng)前周數(shù)后,可以遍歷存放日期數(shù)組那些天是當(dāng)前周
實現(xiàn)
public static void main(String[] args) throws Exception{
//格式化時間
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
//新建日歷類
Calendar c=Calendar.getInstance();
//設(shè)置周一為第一天
c.setFirstDayOfWeek(Calendar.MONDAY);
//新建格式化今天的String類日期
String todayStr=sdf.format(new Date());
//轉(zhuǎn)為Date類型
Date today=sdf.parse(todayStr);
//設(shè)置日歷時間
c.setTime(today);
//獲取當(dāng)前周數(shù)
int currentWeekNum=c.get(Calendar.WEEK_OF_YEAR);
System.out.println(currentWeekNum);
//要查詢的日期
String str="2022-3-28";
Date date=sdf.parse(str);
c.setTime(date);
//查詢?nèi)掌诘闹軘?shù)
int selWeekNum=c.get(Calendar.WEEK_OF_YEAR);
System.out.println(selWeekNum);
if(currentWeekNum==selWeekNum){
System.out.println(str+"是當(dāng)前周的日期");
}else{
System.out.println(str+"不是當(dāng)前周的日期");
}
}
Calendar關(guān)于周的用法
創(chuàng)建對象
Calendar calendar = Calendar.getInstance();
獲取指定年份中有多少周
Calendar calendar = Calendar.getInstance();
傳入?yún)?shù),年份,例如:2023
calendar.set(Calendar.YEAR, 2023);
獲得周數(shù)
int week = calendar.getWeeksInWeekYear();
如果需要指定一周的開始時間可以 用函數(shù)
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
獲取指定周,指定年份,返回月份以及日期
```java
>//創(chuàng)建對象
>Calendar calendar = Calendar.getInstance();
>// 設(shè)置年份
>calendar.set(Calendar.YEAR,2023);
>// 設(shè)置,比如 獲取周一的日期
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
// 一年中的第幾周
calendar.set(Calendar.WEEK_OF_YEAR,36);
// 獲得月份。需要+1.因為月份是從0開始的
int i = calendar.get((Calendar.MONTH))+1;
System.out.println(i);
// 獲得那一周,周一的日期
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));后續(xù)問題: 關(guān)于 如果1月1號為非星期一,那么定義這周為上一年的最后一周。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java?Springboot對接開發(fā)微信支付詳細流程
最近要做一個微信小程序,需要微信支付,所以研究了下怎么在java上集成微信支付功能,下面這篇文章主要給大家介紹了關(guān)于java?Springboot對接開發(fā)微信支付的相關(guān)資料,需要的朋友可以參考下2024-08-08
Java解決線程的不安全問題之volatile關(guān)鍵字詳解
這篇文章主要介紹了Java解決線程的不安全問題之volatile關(guān)鍵字詳解,可見性指一個線程對共享變量值的修改,能夠及時地被其他線程看到,而 volatile 關(guān)鍵字就保證內(nèi)存的可見性,需要的朋友可以參考下2023-08-08
Spring AOP如何自定義注解實現(xiàn)審計或日志記錄(完整代碼)
這篇文章主要介紹了Spring AOP如何自定義注解實現(xiàn)審計或日志記錄(完整代碼),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
java中Memcached的使用實例(包括與Spring整合)
這篇文章主要介紹了java中Memcached的使用實例(包括與Spring整合),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
SpringBoot 利用RestTemplate http測試
這篇文章主要介紹了SpringBoot 利用RestTemplate http測試,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08

