本文目录一览:
- Java如何得到指定时间段中的第几周第几天的日期?
- Java中怎么获取一个月的第几周的所有日期啊?比如说我要获取一月的第一周的所有天数的日期是多少要怎么写
- java 根据输入的年月计算出这个月有几周
- 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; i < 7; 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; i < 7; 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; i < 7; i++) {
System.out.print(wc.getWeekDateByWeekInYear(2011, 7)[i] + " ");
}
System.out.println();
for (int i = 0; i < 7; 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:
*
* pDescription:
*
* pCopyright: Copyright (c) 2005
*
* pCompany:
*
* @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;
int i = 0, j = 1;
System.out.println();
do {
newday = getNextDay(sdate, "" + i++);
String 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()));
}
}