首页 > 编程知识 正文

java获取当月第二周,java获取当月第一天

时间:2024-03-25 09:50:03 阅读:332739 作者:XOOW

本文目录一览:

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()));

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。