當前位置:首頁 » 編程語言 » 周java

周java

發布時間: 2022-05-28 15:01:29

1. java 如何獲取 一個月 有多少周

你說需要計算一個月有多少周,若是指,一月,二月一直到十二月每個月有多少周的話,可以用Java8的新時間API進行計算,因為裡面已經封裝了每個月了,但由於每一年每個月的周數可能不同,所以必須還需要一個日期,也就是年,因此得到某年某月的某個時間,就可以相應算出這個時間所在月的第一天和最後一天,然後計算這第一天和最後一天相隔多少個周


思路:

  1. 獲取所有月份的枚舉集合A

  2. 隨意獲取一個時間B

  3. 循環所有的月份A,把B的月份依次修改為A中的每個月份,得到修改後的時間集合C

  4. 循環C中的所有時間,把每個時間都算出該時間的所在月份的第一天和最後一天,並計算周數

  5. 列印周數


代碼:

//隨意取一個時間,取了當前時間
LocalDatelocalDate=LocalDate.now();
System.out.println("當前時間為:"+localDate);

//根據封裝好的月份獲取一個一月到十二月的Month流,此時流里的對象為Month
Arrays.stream(Month.values())
//把每個month都調整到當前這個時間里,此時流的對象為LocalDate
.map(month->month.adjustInto(localDate))
//這里方便里觀察此時流的數據,把轉換後的時間列印了出來
.peek(System.out::println)
//根據時間的所在月的第一天和最後一天作為間隔計算周數
.map(temporal->ChronoUnit.WEEKS.between(temporal.with(TemporalAdjusters.firstDayOfMonth()),temporal.with(TemporalAdjusters.lastDayOfMonth())))
//列印最後的周數
.forEach(System.out::println);


2. java 怎麼根據第幾年的第幾周獲取那周周一的時期

1、使用Calendar類。
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2016); // 2016年
cal.set(Calendar.WEEK_OF_YEAR, 10); // 設置為2016年的第10周
cal.set(Calendar.DAY_OF_WEEK, 2); // 1表示周日,2表示周一,7表示周六
Date date = cal.getTime();

以上就能得到2016年第10周的周一的Date時間。
註:上面代碼是手工敲的,沒有放到eclipse中運行,有寫錯的地方請諒解

3. java 列出每年的周 並設置 每年的1-7號為第一周 ,由此開始算。並找出每周對應的日期

package p6.util;
import java.text.DateFormatSymbols;
import java.util.Calendar;

import javax.swing.JOptionPane;

public class YearCalendar {

public static void main(String[] args) {

final String title = getCalTitle();

String input = JOptionPane.showInputDialog("Please input year");

try{
if(!input.trim().matches("^\\d{4}$")){
throw new NumberFormatException();
}

int year = Integer.parseInt(input.trim());

System.out.println("------- Calendar For Year " + year + " ----------------");

String[] monthTitles = new DateFormatSymbols().getMonths();

for(int month = Calendar.JANUARY; month <= Calendar.DECEMBER; month++){
System.out.println("\t********** " + monthTitles[month] + " *********");
System.out.println(title);
generateMonthlyCalendar(year, month);
System.out.println("\n\n");
}

}catch(NumberFormatException nbFmtExp){
JOptionPane.showMessageDialog(null, "Error data foramt! Date should be 4 digits only format yyyy");
System.exit(0);
}

}

private static String getCalTitle() {
StringBuffer sb = new StringBuffer();

String[] ary = new DateFormatSymbols().getShortWeekdays();
for(int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++){
sb.append(ary[i]+ "\t");
}

return sb.toString();
}

private static void generateMonthlyCalendar(int year, int month) {

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DATE, 1);

int maxDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

int i = 0;
for(i = Calendar.SUNDAY; i < cal.get(Calendar.DAY_OF_WEEK); i++){
System.out.print(" \t");
}

while(cal.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY){
System.out.print(cal.get(Calendar.DATE) + "\t");
cal.add(Calendar.DATE, 1);
}

int weekDay = Calendar.SATURDAY;

int day = cal.get(Calendar.DATE);

while(day <= maxDay){

if(weekDay == Calendar.SATURDAY){
System.out.println();
weekDay = Calendar.SUNDAY;
}else{
weekDay++;
}

System.out.print(day++ + "\t");

}

}

}

4. 周總結JAVA怎麼寫

一)多態的應用,我理解的多態就是:1)繼承父類;2)子類對象指向父類引用;3)方法的重寫。在多態中,子類可以調用父類的所有方法。
二)抽象類:所謂抽象類就是不能被實例化的類,如果要創建抽象類的實例就必須實現方法的重寫eg: public abstract class Elployee{}聲明一個抽象類。聲明一個抽象方法eg: public abstract double computepay();將一個方法聲明為抽象方法有兩個結果:一是如果一個類包含了抽象方法,那麼該類也必須是抽象的;二是任何子類必須重寫抽象方法,除非子類本身也是抽象的。
三)介面:eg:public interface 介面名{任意數量的成員變數和抽象方法聲明} 介面默認是抽象的、介面中的每一個方法默認也是抽象的、介面中的方法默認訪問級別是public。類實現介面時有兩個選擇:實現介面中定義的所有方法;聲明自己為抽象類。Eg: public class 類名 extends 父類名 implements 介面名,介面名{}(類用關鍵字implements來實現介面,介面可實現多繼承,一個類可以實現多個介面,介面之間用逗號隔開)。
四)異常(檢查異常、運行時異常、錯誤):對於異常的處理,有三種選擇:捕獲這個異常,不讓它沿著調用棧繼續向下拋出;捕獲這個異常,並繼續向下拋出;不捕獲這個異常。捕獲異常方法:try{被保護的代碼}catch(異常的名稱){捕獲塊}。聲明一個異常:public void deposit (double amout) throws RemoteException。拋出一個異常:throw new (數組索引越界)。

5. 如何在一周內學會Java

首先可以看譚浩強的書,掌握基本的數據類型,類,對象,判斷循環什麼的,這個過程如果是自學,短則一周,長則一個月。並且要不斷練習編寫小程序,比如什麼輸出九九表啊,圖形啊什麼的。這個過程相當於學語文的學語法一樣。

然後是看《Java核心技術》,學習常用的系統提供的方法,這個過程中你掌握的方法越多,往後學習起來越容易,並且要不斷練習編寫中、小程序,Java核心技術里的源代碼特別多,比別的教材要好很多,而且工作中甚至都能用到那些源代碼。還要大量閱讀Java API文檔,相當於學語文的時候翻字典一樣。大概要半年時間。

6. java如何實現獲取一年中所有周的星期一和星期天。(要求1月4號所在的周為新年第一周)

代碼截圖如下:從2021-1-1到2021-12-31日

運行結果

7. java如何得到每個月的周

使用java.util.Calendar的get(int Field) 很容易知道哪天是周幾

java.text.SimpleDateFormatfm=newjava.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Calendarcal=java.util.Calendar.getInstance();
cal.setTime(fm.parse("2014-10-01"));
intm=cal.get(java.util.Calendar.MONTH);
while(true){
System.out.println(cal.getTime()+"是"+cal.get(java.util.Calendar.DAY_OF_WEEK));
cal.add(java.util.Calendar.DAY_OF_MONTH,1);
if(cal.get(java.util.Calendar.MONTH)!=m){
break;
}
}

//7是星期日、6是星期6、。。。。。。。

8. java中一個月按周劃分

lz 你好


這個還是比較好實現

具體代碼如下(有詳細的注釋):

importjava.util.*;

//月份劃分類
publicclassMonthDivide{
privateintyear,month;//年份、月份
privateintweekend; //周數(第幾周)
privateintleapYear[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //閏年每月天數
privateintcommonYear[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //平年每月天數
privateintstart,end;

//輸入
publicvoidinputData(){
Scannerin=newScanner(System.in);

System.out.print("輸入年份:");
year=in.nextInt();
System.out.print("輸入月份:");
month=in.nextInt();
//System.out.print("輸入周數:");
//weekend=in.nextInt();
}

//判斷閏年
publicbooleanisLeapYear(intyear){
return(year%4==0&&year%100!=0)||(year%400==0);
}

//計算
publicvoidcount(){
intday,weekday,allDays=0;
//分別表示當月天數、當月一號是星期幾、1900.1.1到當前輸入日期之間的天數

day=isLeapYear(year)?leapYear[month]:commonYear[month];
if(weekend>(day==28?4:5)){
System.out.println("周數越界了!");
return;
}

//計算天數
for(inti=1900;i<year;i++){
allDays+=isLeapYear(i)?366:365;
}
for(inti=1;i<month;i++){
allDays+=isLeapYear(year)?leapYear[i]:commonYear[i];
}
//計算星期幾
weekday=1+allDays%7;

//計算第weekend周的開始和結束
if(weekend==1){
start=1;
end=8-weekday;
}
else{
start=(weekend-2)*7+(9-weekday);
end=start+6;
if(end>day)
end=day;
}
}

//設置weekend周數
publicvoidsetWeekend(intwk){
weekend=wk;
}

//以下三個是獲取屬性
publicintgetStart(){
returnstart;
}
publicintgetEnd(){
returnend;
}
publicintgetWeekend(){
returnweekend;
}

//main
publicstaticvoidmain(String[]args){
MonthDividemd=newMonthDivide();

md.inputData();

for(inti=1;i<=5;i++){
md.setWeekend(i);
md.count();
System.out.print(" 第"+md.getWeekend()+"周開始於"+md.getStart()+"號 結束至"+md.getEnd()+"號");
}
}
}


運行結果:


希望能幫助你哈

9. java獲取一年共有多少周

計算一年有多少個周的思路:首先,每年至少有52個周,至多有53個周,取決於周一是在哪年(也可以定位周日,這個是由需求決定的),以下是詳細代碼,其中判斷哪一天決定了當周是屬於哪一年的邏輯是寫在getYearWeekEndDay中。

/**
* 返回指定年度的所有周。List中包含的是String[2]對象<br>
* string[0]本周的開始日期,string[1]是本周的結束日期。<br>
* 日期的格式為yyyy-MM-dd。<br>
* 每年的第一個周,必須包含星期一且是完整的七天。<br>
* 例如:2009年的第一個周開始日期為2009-01-05,結束日期為2009-01-11。 <br>
* 星期一在哪一年,那麼包含這個星期的周就是哪一年的周。<br>
* 例如:2008-12-29是星期一,2009-01-04是星期日,哪么這個周就是2008年度的最後一個周。<br>
*
* @param year 格式 yyyy ,必須大於1900年度 小於9999年
* @return
*/
public static List<String[]> getWeeksByYear(final int year){
if(year<1900 || year >9999){
throw new NullPointerException("年度必須大於等於1900年小於等於9999年");
}
//實現思路,首先計算當年有多少個周,然後找到每個周的開始日期和結束日期
// Calendar calendar = new GregorianCalendar();
// // 在具有默認語言環境的默認時區內使用當前時間構造一個默認的 GregorianCalendar。
// calendar.setFirstDayOfWeek(Calendar.MONDAY); //設置每周的第一天為星期一
// calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //每周從周一開始
// 上面兩句代碼配合,才能實現,每年度的第一個周,是包含第一個星期一的那個周。
// calendar.setMinimalDaysInFirstWeek(7); //設置每周最少為7天
// calendar.set(Calendar.YEAR, year); // 設置年度為指定的年
// //首先計算當年有多少個周,每年都至少有52個周,個別年度有53個周
int weeks = getWeekNumByYear(year);
// System.out.println(year+"共有"+weeks+"個周");
List<String[]> result = new ArrayList<String[]>(weeks);
for(int i=1;i<=weeks;i++){
String[] tempWeek = new String[2];
tempWeek[0] = getYearWeekFirstDay(year,i);
tempWeek[1] = getYearWeekEndDay (year,i);
//或者使用下面的代碼,不過發現效率更低
// tempWeek[0] = getDateAdd(firstWeekDay,(i-1)*7+0);
// tempWeek[1] = getDateAdd(firstWeekDay,(i-1)*7+6);
result.add(tempWeek);
// System.out.println(i+"="+tempWeek[0]+"_"+tempWeek[1]);
}
return result;
}

/**
* 計算指定年度共有多少個周。
* @param year 格式 yyyy ,必須大於1900年度 小於9999年
* @return
*/
public static int getWeekNumByYear(final int year){
if(year<1900 || year >9999){
throw new NullPointerException("年度必須大於等於1900年小於等於9999年");
}
int result = 52;//每年至少有52個周 ,最多有53個周。
String date = getYearWeekFirstDay(year,53);
if(date.substring(0, 4).equals(year+"")){ //判斷年度是否相符,如果相符說明有53個周。
result = 53;
}
return result;
}

/**
* 計算某年某周的開始日期
* @param yearNum 格式 yyyy ,必須大於1900年度 小於9999年
* @param weekNum 1到52或者53
* @return 日期,格式為yyyy-MM-dd
*/
public static String getYearWeekFirstDay(int yearNum,int weekNum) {
if(yearNum<1900 || yearNum >9999){
throw new NullPointerException("年度必須大於等於1900年小於等於9999年");
}
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY); //設置每周的第一天為星期一
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//每周從周一開始
// 上面兩句代碼配合,才能實現,每年度的第一個周,是包含第一個星期一的那個周。
cal.setMinimalDaysInFirstWeek(7); //設置每周最少為7天
cal.set(Calendar.YEAR, yearNum);
cal.set(Calendar.WEEK_OF_YEAR, weekNum);

//分別取得當前日期的年、月、日
return getFormatDate(cal.getTime());
}

/**
* 計算某年某周的結束日期
* @param yearNum 格式 yyyy ,必須大於1900年度 小於9999年
* @param weekNum 1到52或者53
* @return 日期,格式為yyyy-MM-dd
*/
public static String getYearWeekEndDay(int yearNum,int weekNum) {
if(yearNum<1900 || yearNum >9999){
throw new NullPointerException("年度必須大於等於1900年小於等於9999年");
}
Calendar cal = Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.MONDAY); //設置每周的第一天為星期一
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//每周從周一開始
// 上面兩句代碼配合,才能實現,每年度的第一個周,是包含第一個星期一的那個周。
cal.setMinimalDaysInFirstWeek(7); //設置每周最少為7天
cal.set(Calendar.YEAR, yearNum);
cal.set(Calendar.WEEK_OF_YEAR, weekNum);

return getFormatDate(cal.getTime());
}

10. Java如何判斷今天本月第幾周的周幾

使用Calendar類可以對日期進行常用操作,代碼如下:

Calendarc=Calendar.getInstance();
//當前日期是本月第幾周
intweeks=c.get(Calendar.WEEK_OF_MONTH);
System.out.println(weeks);
//當前是星期幾java中一周第一天為星期天,所以1代表星期日,2代表星期一,以此類推,7代表星期6
intweek=c.get(Calendar.DAY_OF_WEEK);
System.out.println(week);
熱點內容
海康威視監控密碼是多少位 發布:2025-02-12 12:20:29 瀏覽:584
安卓的自帶瀏覽器在哪裡 發布:2025-02-12 12:20:29 瀏覽:722
望海潮上傳 發布:2025-02-12 12:16:08 瀏覽:672
javathread源碼 發布:2025-02-12 12:12:37 瀏覽:907
整個伺服器搭建教程 發布:2025-02-12 11:48:16 瀏覽:579
我的世界伺服器人多的 發布:2025-02-12 11:48:12 瀏覽:347
為實現分頁存儲管理需要哪些硬體支持 發布:2025-02-12 11:46:34 瀏覽:539
編程下載線 發布:2025-02-12 11:41:48 瀏覽:210
json存儲數據 發布:2025-02-12 11:41:39 瀏覽:219
天龍八部腳本免費 發布:2025-02-12 11:30:12 瀏覽:501