Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的周历_Java_Calendar - Fatal编程技术网

Java中的周历

Java中的周历,java,calendar,Java,Calendar,在Stack上有一百万篇关于如何获取一周中当前一天的帖子,我已经浏览了所有这些帖子,但都没有用。我正在浏览API,但我仍然不知道如何做到这一点 我需要用Java设置一个每周日历。因此,如果周日是29号,周一是30号,周二是31号或1号,然后是1号或2号,依此类推 因此,我需要做的是得到一周的第一天(周日,对应于日历中的1.\u day\u of u week),它的月日(即日历。day\u of u month),以及之后的六天,考虑到一个新月可能开始的可能性 我知道这听起来很简单,但我已经在S

在Stack上有一百万篇关于如何获取一周中当前一天的帖子,我已经浏览了所有这些帖子,但都没有用。我正在浏览API,但我仍然不知道如何做到这一点

我需要用Java设置一个每周日历。因此,如果周日是29号,周一是30号,周二是31号或1号,然后是1号或2号,依此类推

因此,我需要做的是得到一周的第一天(周日,对应于
日历中的1.\u day\u of u week
),它的月日(即
日历。day\u of u month
),以及之后的六天,考虑到一个新月可能开始的可能性


我知道这听起来很简单,但我已经在StackOverflow周围搜寻了几个小时,令人惊讶的是,我还没有找到任何类似的东西。

这将得到当前一周的天数

private Locale locale = Locale.UK;
// 1. create calendar
private Calendar cal = new GregorianCalendar(locale);
private DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, locale);

public void getThisWeeksDays() {
    // 2. set calendar to the current date
    cal.setTime(new Date());
    cal.setFirstDayOfWeek(Calendar.SUNDAY);

    // 3. set calendars dOW field to the first dOW (last sunday)
    cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());

    for (int i = 0; i < 7; i++) {
        // 4. get some infomation
        String nameOfMonth = cal.getDisplayName(Calendar.MONTH, Calendar.LONG, locale);
        String nameOfDay = cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

        System.out.println(dayOfMonth + ": " + df.format(cal.getTime()));

        // 5. increase day field; add() will adjust the month if neccessary
        cal.add(Calendar.DAY_OF_WEEK, 1);
    }
}

这将获取当前周的天数

private Locale locale = Locale.UK;
// 1. create calendar
private Calendar cal = new GregorianCalendar(locale);
private DateFormat df = DateFormat.getDateInstance(DateFormat.FULL, locale);

public void getThisWeeksDays() {
    // 2. set calendar to the current date
    cal.setTime(new Date());
    cal.setFirstDayOfWeek(Calendar.SUNDAY);

    // 3. set calendars dOW field to the first dOW (last sunday)
    cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());

    for (int i = 0; i < 7; i++) {
        // 4. get some infomation
        String nameOfMonth = cal.getDisplayName(Calendar.MONTH, Calendar.LONG, locale);
        String nameOfDay = cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, locale);
        int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);

        System.out.println(dayOfMonth + ": " + df.format(cal.getTime()));

        // 5. increase day field; add() will adjust the month if neccessary
        cal.add(Calendar.DAY_OF_WEEK, 1);
    }
}
乔达时间 使用2.3而不是与java捆绑在一起的臭名昭著的java.util.Date/Calendar类

我假设你只想要日期,不考虑时间和时区

一周的第一天 本例假设您希望硬编码一周中的某一天(星期日或星期一等)作为一周的开始和结束

/©2013巴西尔布尔克。此源代码可以由任何对此承担全部责任的人自由使用。
org.joda.time.LocalDate now=new org.joda.time.LocalDate();
org.joda.time.LocalDate monday=now.withDayOfWeek(org.joda.time.DateTimeConstants.monday);
org.joda.time.LocalDate sunday=now.withDayOfWeek(org.joda.time.DateTimeConstants.sunday);
System.out.println(“now:+now”);
System.out.println(“星期一:+星期一”);
System.out.println(“星期日:+Sunday”);
当运行时

现在:2013-11-30
星期一:2013-11-25
星期日:2013-12-01
请注意,并不是每个人都以星期天开始一周。美国人倾向于使用星期天,欧洲人倾向于使用星期一,还有一些人倾向于使用星期六。星期一是国际标准

我试图在一周的第一天/最后一天找到软编码的方法,但失败了。下面的代码似乎很有希望,但我找不到传递区域设置的方法

org.joda.time.LocalDate today=new org.joda.time.LocalDate();
org.joda.time.LocalDate weekStart=today.dayOfWeek().withMinimumValue();
org.joda.time.LocalDate weekEnd=today.dayOfWeek().withMaximumValue();
一周中的几天 要完成您的问题,请添加For()循环和Bob的叔叔

System.out.println(“周…”);
对于(int x=0;x<7;x=x+1){
org.joda.time.LocalDate someDate=monday.plusDays(x);
System.out.println(“Jour:+someDate.dayOfWeek().getAsText(Locale.FRANCE)+”“+someDate.toString());
}
当运行时

每周…
年月:伦迪2013-11-25
日期:2013年11月26日
日期:mercredi 2013-11-27
日期:朱迪2013-11-28
日期:vendredi 2013-11-29
日期:samedi 2013-11-30
日期:迪曼奇2013-12-01
Joda时间 使用2.3而不是与java捆绑在一起的臭名昭著的java.util.Date/Calendar类

我假设你只想要日期,不考虑时间和时区

一周的第一天 本例假设您希望硬编码一周中的某一天(星期日或星期一等)作为一周的开始和结束

/©2013巴西尔布尔克。此源代码可以由任何对此承担全部责任的人自由使用。
org.joda.time.LocalDate now=new org.joda.time.LocalDate();
org.joda.time.LocalDate monday=now.withDayOfWeek(org.joda.time.DateTimeConstants.monday);
org.joda.time.LocalDate sunday=now.withDayOfWeek(org.joda.time.DateTimeConstants.sunday);
System.out.println(“now:+now”);
System.out.println(“星期一:+星期一”);
System.out.println(“星期日:+Sunday”);
当运行时

现在:2013-11-30
星期一:2013-11-25
星期日:2013-12-01
请注意,并不是每个人都以星期天开始一周。美国人倾向于使用星期天,欧洲人倾向于使用星期一,还有一些人倾向于使用星期六。星期一是国际标准

我试图在一周的第一天/最后一天找到软编码的方法,但失败了。下面的代码似乎很有希望,但我找不到传递区域设置的方法

org.joda.time.LocalDate today=new org.joda.time.LocalDate();
org.joda.time.LocalDate weekStart=today.dayOfWeek().withMinimumValue();
org.joda.time.LocalDate weekEnd=today.dayOfWeek().withMaximumValue();
一周中的几天 要完成您的问题,请添加For()循环和Bob的叔叔

System.out.println(“周…”);
对于(int x=0;x<7;x=x+1){
org.joda.time.LocalDate someDate=monday.plusDays(x);
System.out.println(“Jour:+someDate.dayOfWeek().getAsText(Locale.FRANCE)+”“+someDate.toString());
}
当运行时

每周…
年月:伦迪2013-11-25
日期:2013年11月26日
日期:mercredi 2013-11-27
日期:朱迪2013-11-28
日期:vendredi 2013-11-29
日期:samedi 2013-11-30
日期:迪曼奇2013-12-01

那么您尝试了什么,遇到了什么问题?我强烈建议使用Joda Time-它比java.util.Calendar更容易使用。那么您尝试了什么,遇到了什么问题?我强烈建议使用Joda Time-它比java.util.Calendar.Works更容易使用(添加文本).适合我(添加文本)。