java獲取當月第二周,java獲取當月第一天

本文目錄一覽:

Java如何得到指定時間段中的第幾周第幾天的日期?

第二周的周一??不完整周也算第一周???

我理解你的問題是第二個周一的日期是多少??

import java.util.Calendar;

public class Test {

/**

* @param args

*/

public static void main(String[] args) throws Exception {

Calendar c_begin = Calendar.getInstance();

Calendar c_end = Calendar.getInstance();

c_begin.set(2010, 3, 1); //Calendar的月從0-11,所以4月是3.

c_end.set(2010, 4, 20); //Calendar的月從0-11,所以5月是4.

int count = 0;

while(c_begin.before(c_end)){

//System.out.println(new java.sql.Date(c_begin.getTime().getTime()));

if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY){

count++;

}

if(count == 2){

System.out.println(c_begin.get(Calendar.YEAR)+”年”+(c_begin.get(Calendar.MONTH)+1)+”月”+c_begin.get(Calendar.DATE)+”日”);

break;

}

c_begin.add(Calendar.DAY_OF_YEAR, 1);

}

}

}

Java中怎麼獲取一個月的第幾周的所有日期啊?比如說我要獲取一月的第一周的所有天數的日期是多少要怎麼寫

第幾周是該月的第幾周嗎? 還是該年的第幾周?

下面的程序包含了2種情況, 請自行選擇.

package com.calender;

import java.util.Calendar;

import java.util.Locale;

/**

* 輸出某周的日期.

* 演示Calendar的用法.

* Calendar的使用一般分2步,

* 1.確定某天, 調用set函數

* 2.可以取出該天的任意信息, 通過get函數.

* @author: zhuby

* @create date:2011-1-17

*/

public class WeekCalendar {

/**

* 周計數,為全年中的周計數

* @param year

* @param weekCount

* @return

*/

public int[] getWeekDateByWeekInYear(int year,int weekCount){

Calendar cal=Calendar.getInstance(Locale.CHINA);

//設置calendar的日期,此處可以確定某一天

cal.set(Calendar.YEAR, year);

cal.set(Calendar.WEEK_OF_YEAR, weekCount);

//獲取該天的信息(理論而言,通過改變get函數的參數,可以獲取該天的任意信息)

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

int[] days=new int[7];

for(int i=0;i7;i++){

days[i]=cal.get(Calendar.DAY_OF_MONTH);

// System.out.print((cal.get(Calendar.MONTH)+1)+”月”+cal.get(Calendar.DAY_OF_MONTH)+”日 “);

day++;

cal.set(Calendar.DAY_OF_YEAR, day);

}

return days;

}

/**

* 周計數為月中的周計數

* @param year

* @param month

* @param weekCount

* @return

*/

public int[] getWeekDateByWeekInMonth(int year,int month,int weekCount){

Calendar cal=Calendar.getInstance(Locale.CHINA);

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month-1);

cal.set(Calendar.WEEK_OF_MONTH, weekCount);

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

int[] days=new int[7];

for(int i=0;i7;i++){

days[i]=cal.get(Calendar.DAY_OF_MONTH);

// System.out.print((cal.get(Calendar.MONTH)+1)+”月”+cal.get(Calendar.DAY_OF_MONTH)+”日 “);

day++;

cal.set(Calendar.DAY_OF_YEAR, day);

}

return days;

}

public static void main(String[] args) {

WeekCalendar wc=new WeekCalendar();

for(int i=0;i7;i++){

System.out.print(wc.getWeekDateByWeekInYear(2011, 7)[i]+” “);

}

System.out.println();

for(int i=0;i7;i++){

System.out.print(wc.getWeekDateByWeekInMonth(2011,4, 2)[i]+” “);

}

}

}

java 根據輸入的年月計算出這個月有幾周

import java.util.Calendar;

import java.util.Date;

import java.text.SimpleDateFormat;

import java.text.ParsePosition;

import java.util.GregorianCalendar;

/**

* pTitle: /p

*

* pDescription: /p

*

* pCopyright: Copyright (c) 2005/p

*

* pCompany: /p

*

* @author not attributable

* @version 1.0

*/

public class Untitled1

{

public Untitled1()

{

}

/**

* 判斷是否潤年

*

* @param ddate

* @return

*/

public static boolean isLeapYear(String ddate) {

/**

* 詳細設計: 1.被400整除是閏年,否則: 2.不能被4整除則不是閏年 3.能被4整除同時不能被100整除則是閏年

* 3.能被4整除同時能被100整除則不是閏年

*/

Date d = strToDate(ddate);

GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();

gc.setTime(d);

int year = gc.get(Calendar.YEAR);

if ((year % 400) == 0)

return true;

else if ((year % 4) == 0) {

if ((year % 100) == 0)

return false;

else

return true;

} else

return false;

}

/**

* 得到一個時間延後或前移幾天的時間,nowdate為時間,delay為前移或後延的天數

*/

public static String getNextDay(String nowdate, String delay) {

try{

SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd”);

String mdate = “”;

Date d = strToDate(nowdate);

long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;

d.setTime(myTime * 1000);

mdate = format.format(d);

return mdate;

}catch(Exception e){

return “”;

}

}

/**

* 將短時間格式字符串轉換為時間 yyyy-MM-dd

*

* @param strDate

* @return

*/

public static Date strToDate(String strDate) {

SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd”);

ParsePosition pos = new ParsePosition(0);

Date strtodate = formatter.parse(strDate, pos);

return strtodate;

}

/**

* 獲取一個月的最後一天

*

* @param dat

* @return

*/

public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd

String str = dat.substring(0, 8);

String month = dat.substring(5, 7);

int mon = Integer.parseInt(month);

if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8 || mon == 10 || mon == 12) {

str += “31”;

} else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {

str += “30”;

} else {

if (isLeapYear(dat)) {

str += “29”;

} else {

str += “28”;

}

}

return str;

}

/**

* 根據一個日期,返回是星期幾的字符串

*

* @param sdate

* @return

*/

public static String getWeek(String sdate) {

// 再轉換為時間

Date date = strToDate(sdate);

Calendar c = Calendar.getInstance();

c.setTime(date);

// int hour=c.get(Calendar.DAY_OF_WEEK);

// hour中存的就是星期幾了,其範圍 1~7

// 1=星期日 7=星期六,其他類推

return new SimpleDateFormat(“EEEE”).format(c.getTime());

}

public static String getWeekStr(String sdate){

String str = “”;

str = getWeek(sdate);

if(“1”.equals(str)){

str = “星期日”;

}else if(“2”.equals(str)){

str = “星期一”;

}else if(“3”.equals(str)){

str = “星期二”;

}else if(“4”.equals(str)){

str = “星期三”;

}else if(“5”.equals(str)){

str = “星期四”;

}else if(“6”.equals(str)){

str = “星期五”;

}else if(“7”.equals(str)){

str = “星期六”;

}

return str;

}

public static String getNowMonth(String sdate) {

// 取該時間所在月的一號

//sdate = sdate.substring(0, 8) + “01”;

sdate = sdate + “-01”;

// 得到這個月的1號是星期幾

Calendar c = Calendar.getInstance();

Date date = strToDate(sdate);

c.setTime(date);

int u = c.get(Calendar.DAY_OF_WEEK);

String newday = getNextDay(sdate, (1 – u) + “”);

return newday;

}

public static String getMonthDate(String sdate) {

// 取該時間所在月的一號

//sdate = sdate.substring(0, 8) + “01”;

sdate = sdate + “-01”;

// 得到這個月的1號是星期幾

Calendar c = Calendar.getInstance();

Date date = strToDate(sdate);

c.setTime(date);

int u = c.get(Calendar.DAY_OF_WEEK);

// for(int i=0;i)

String edate=getEndDateOfMonth(sdate);

String newday;

newday = getNextDay(sdate, (1 – u) + “”);

String week;

int i=0,j=1;

System.out.println();

do

{

newday=getNextDay(sdate,””+i++);

week=getWeek(newday);

if(!week.equals(“星期日”)!week.equals(“星期六”))

{

System.out.println(“第”+(j)+”周”);

System.out.print(newday);

System.out.print(week);

System.out.println();

}

if(week.equals(“星期六”))j++;

}

while(!newday.equals(edate));

return newday;

}

static public void main(String[] args)

{

getMonthDate(“2011-05”);

}

}

Java根據日期得到當月第幾周

Calendar c_begin = Calendar.getInstance();

Calendar c_end = Calendar.getInstance();

c_begin.set(2010, 3, 1); //Calendar的月從0-11,所以4月是3.

c_end.set(2010, 4, 20); //Calendar的月從0-11,所以5月是4.

int count = 0;

while(c_begin.before(c_end)){

//System.out.println(new java.sql.Date(c_begin.getTime().getTime()));

if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.MONDAY){

count++;

}

if(count == 2){

System.out.println(c_begin.get(Calendar.YEAR)+”年”+(c_begin.get(Calendar.MONTH)+1)+”月”+c_begin.get(Calendar.DATE)+”日”);

break;

}

c_begin.add(Calendar.DAY_OF_YEAR, 1);

}

可以這樣試試,應該能理解吧。如有不懂再問我

Java日期操作問題,傳入一個日期返回這個日期所在月的第幾周,具體要求如下:

import java.util.Calendar;

import java.util.Date;

public class test {

public static String getWeekOfMonth(Date date) {

Calendar cal = Calendar.getInstance();

cal.setTime(date);

//外國月份為0-11所以月份加一

int month = cal.get(Calendar.MONTH)+1;

int mweek = cal.get(Calendar.WEEK_OF_MONTH);

String d = month+”第”+mweek+”周”;

return d;

}

public static void main(String[] args) {

System.out.println(getWeekOfMonth(new Date()));

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/183972.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:49
下一篇 2024-11-25 05:50

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論