本文目錄一覽:
- 1、Java如何得到指定時間段中的第幾周第幾天的日期?
- 2、Java中怎麼獲取一個月的第幾周的所有日期啊?比如說我要獲取一月的第一周的所有天數的日期是多少要怎麼寫
- 3、java 根據輸入的年月計算出這個月有幾周
- 4、Java根據日期得到當月第幾周
- 5、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