Java中获取本周内所有日期

在Java中获取本周内所有日期,并按中国人传统,周一为第一天开始计算

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DataTest {

public static void main(String[] args) {
printWeekdays();
}

private static final int FIRST_DAY = Calendar.MONDAY;

private static void printWeekdays() {
Calendar calendar = Calendar.getInstance();
setToFirstDay(calendar);
for (int i = 0; i < 7; i++) {
printDay(calendar);
calendar.add(Calendar.DATE, 1);
}
}

private static void setToFirstDay(Calendar calendar) {
while (calendar.get(Calendar.DAY_OF_WEEK) != FIRST_DAY) {
calendar.add(Calendar.DATE, -1);
}
}

private static void printDay(Calendar calendar) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd EE");
System.out.println(dateFormat.format(calendar.getTime()));
}

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-02-19
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
// 今天是一周中的第几天
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK );

if (c.getFirstDayOfWeek() == Calendar.SUNDAY) {
c.add(Calendar.DAY_OF_MONTH, 1);
}
// 计算一周开始的日期
c.add(Calendar.DAY_OF_MONTH, -dayOfWeek);

for (int i=1;i<=7;i++) {
c.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(sdf.format(c.getTime()));
}

第2个回答  2014-02-19
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
int date = cal.get(Calendar.DAY_OF_MONTH);
int n = cal.get(Calendar.DAY_OF_WEEK);
if (n == 1) {
n = 7;
} else {
n = n - 1;
}
System.out.println("当天为本周第" + n + "天");
// 日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (int i = 1; i <= 7; i++) {
cal.set(Calendar.DAY_OF_MONTH, date + i - n);
System.out.println("本周第" + i + "天:" + sdf.format(cal.getTime()));
}
}

结果:
当天为本周第3天
本周第1天:2014-02-17
本周第2天:2014-02-18
本周第3天:2014-02-19
本周第4天:2014-02-20
本周第5天:2014-02-21
本周第6天:2014-02-22
本周第7天:2014-02-23

java中如何计算本周开始和结束的日期
思路:首先是获取该月的实际天数,然后从1号遍历直至该月最后一天,利用Calendar类找出该日是一周中的第几天,(1)若该日是周日,则视为一周结束,并用该日期减去6找到该周的开始日期,若相减结果小于等于1,则说明该周起始日期应该是本月1号。(1)若该日不是周日,且是该月最后一天,则应该在...

java如何获取当前时间 年月日 时
获取Java当前时间的年月日时,可以通过Calendar类和SimpleDateFormat类来实现。首先,获取当前时间的长整型表示,然后创建一个Date对象。接着,利用SimpleDateFormat将日期格式化为所需的格式,如"yyyy-MM-dd HH:mm:ss",以便于读取。以下是一个示例代码片段:java Calendar now = Calendar.getInstance();...

java通过本月第几周怎么找本周的其实日期和截止日期?
使用 Calendar.add(int, int) 往前找到周的开始 同样,再往后找到周的结束 事实上,楼主都找到今天是周几了,一加、一减就找到周开始、周结束了。

java 获取当前日期时间和本周的星期一的日期时间?
static public void main(String 参数[]){ SimpleDateFormat 格式=new SimpleDateFormat("y年M月d日 E H时m分s秒",Locale.CHINA);Calendar 日历=Calendar.getInstance(Locale.CHINA);\/\/当前时间,貌似多余,其实是为了所有可能的系统一致 日历.setTimeInMillis(System.currentTimeMillis());System.out.p...

java获取某段时间内所有的周一,获取某段时间内,日期是11号,请问怎么弄...
\/\/Java 中月 1 - 12 月,分别对应是 0 - 11 \/\/设定目前日期为 2000\/02\/01(29天)\/\/cal.set(2000, 1, 1);System.out.println("现在的时间: " + cal.getTime());System.out.println("本月共有 : " + cal.getActualMaximum(Calendar.WEEK_OF_MONTH) + " 周");int date_Count =...

Java中怎么获取一个月的第几周的所有日期啊?比如说我要获取一月的第一...
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(...

java 根据所填写的星期数获取日期
import java.util.Calendar;import java.util.Date;public class Main { public static void main(String[] args) { System.out.println(getDateByWeek(2)); } \/** * 根据星期获取日期 * * @param week 星期几 1代码星期日,2代表星期一。。。7代表星期六 * @return...

Java判断日期是否是本日,本周,本月
;lastDayOfWeek.add(Calendar.DATE, 7-day+1);\/\/ 本周星期天的日期System.out.println(format.format(lastDayOfWeek.getTime()));}这一段代码可以获取本周一的日期、本周日的日期,比如本周一为20180702、本周日为20180708。只要判断给定的日期数字是否在[20180702, 20180708]范围内即可以上的是判断...

java怎么获取当年所有的星期,并列出所有星期,如现在25周(20130617-2013...
private static DecimalFormat df = new DecimalFormat("00"); private static void printWeeks() { Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); calendar.set(Calendar.WEEK_OF_YEAR,...

Java如何得到指定时间段中的所有周,及每周的每一天都是周几和日期是多 ...
end)){ System.out.println("第"+count+"周 日期:"+new java.sql.Date(c_begin.getTime().getTime())+", "+weeks[c_begin.get(Calendar.DAY_OF_WEEK)]);if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){ count++;} c_begin.add(Calendar.DAY_OF_YEAR, 1);} } } ...

相似回答