「java计算本周」java计算本周开始和结束日期

博主:adminadmin 2022-12-08 04:39:07 74

今天给各位分享java计算本周的知识,其中也会对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()));

}

}

java 编程 计算时间(计算本周,本月)

这个可以用dwr框架来做,你可以google一下dwr框架,是前台页面通过js直接调用后台方法的轻量级框架。

至于时间算法

1显示本周,那得算出当前周的周一到周7(国外是周日到周六为一周)是几号到几号。 方法是:

private static HashMapString, String getWeekByDate() {

HashMapString, String dayMap = new HashMapString, String();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式

Calendar cal = Calendar.getInstance();

cal.setTime(new Date());

// 判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了

int dayWeek = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天

if (1 == dayWeek) {

cal.add(Calendar.DAY_OF_MONTH, -1);

}

System.out.println("要计算日期为:" + sdf.format(cal.getTime())); // 输出要计算日期

cal.setFirstDayOfWeek(Calendar.MONDAY);// 设置一个星期的第一天,按中国的习惯一个星期的第一天是星期一

int day = cal.get(Calendar.DAY_OF_WEEK);// 获得当前日期是一个星期的第几天

cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);// 根据日历的规则,给当前日期减去星期几与一个星期第一天的差值

String imptimeBegin = sdf.format(cal.getTime());

System.out.println("所在周星期一的日期:" + imptimeBegin);

dayMap.put("Monday", imptimeBegin);

cal.add(Calendar.DATE, 6);

String imptimeEnd = sdf.format(cal.getTime());

System.out.println("所在周星期日的日期:" + imptimeEnd);

dayMap.put("SunDay", imptimeEnd);

return dayMap;

}

得到了周一和周日具体是那天,直接去数据库查就OK了,怎么查可以去看下SQL里的between关键字

还有一些写不下,追问一下

java中如何得到本周时间

import java.util.*;

public class DateTest {

public DateTest(){

Calendar c = Calendar.getInstance();

int weekday = c.get(7)-1;

c.add(5,-weekday);

System.out.println("本周开始时间:"+c.getTime());

c.add(5,6);

System.out.println("本周开始结束:"+c.getTime());

}

public static void main(String[] args) {

new DateTest();

}

}

用java怎么计算当前年有多少周

计算一年有多少个周的思路:首先,每年至少有52个周,至多有53个周,取决于周一是在哪年(也可以定位周日,这个是由需求决定的),以下是详细代码,其中判断哪一天决定了当周是属于哪一年的逻辑是写在getYearWeekEndDay中。

/**

* 返回指定年度的所有周。List中包含的是String[2]对象br

* string[0]本周的开始日期,string[1]是本周的结束日期。br

* 日期的格式为yyyy-MM-dd。br

* 每年的第一个周,必须包含星期一且是完整的七天。br

* 例如:2009年的第一个周开始日期为2009-01-05,结束日期为2009-01-11。 br

* 星期一在哪一年,那么包含这个星期的周就是哪一年的周。br

* 例如:2008-12-29是星期一,2009-01-04是星期日,哪么这个周就是2008年度的最后一个周。br

*

* @param year 格式 yyyy ,必须大于1900年度 小于9999年

* @return

*/

public static ListString[] getWeeksByYear(final int year){

if(year1900 || year 9999){

throw new NullPointerException("年度必须大于等于1900年小于等于9999年");

}

//实现思路,首先计算当年有多少个周,然后找到每个周的开始日期和结束日期

// Calendar calendar = new GregorianCalendar();

// // 在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。

// calendar.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一

// calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //每周从周一开始

// 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。

// calendar.setMinimalDaysInFirstWeek(7); //设置每周最少为7天

// calendar.set(Calendar.YEAR, year); // 设置年度为指定的年

// //首先计算当年有多少个周,每年都至少有52个周,个别年度有53个周

int weeks = getWeekNumByYear(year);

// System.out.println(year+"共有"+weeks+"个周");

ListString[] result = new ArrayListString[](weeks);

for(int i=1;i=weeks;i++){

String[] tempWeek = new String[2];

tempWeek[0] = getYearWeekFirstDay(year,i);

tempWeek[1] = getYearWeekEndDay (year,i);

//或者使用下面的代码,不过发现效率更低

// tempWeek[0] = getDateAdd(firstWeekDay,(i-1)*7+0);

// tempWeek[1] = getDateAdd(firstWeekDay,(i-1)*7+6);

result.add(tempWeek);

// System.out.println(i+"="+tempWeek[0]+"_"+tempWeek[1]);

}

return result;

}

/**

* 计算指定年度共有多少个周。

* @param year 格式 yyyy ,必须大于1900年度 小于9999年

* @return

*/

public static int getWeekNumByYear(final int year){

if(year1900 || year 9999){

throw new NullPointerException("年度必须大于等于1900年小于等于9999年");

}

int result = 52;//每年至少有52个周 ,最多有53个周。

String date = getYearWeekFirstDay(year,53);

if(date.substring(0, 4).equals(year+"")){ //判断年度是否相符,如果相符说明有53个周。

result = 53;

}

return result;

}

/**

* 计算某年某周的开始日期

* @param yearNum 格式 yyyy ,必须大于1900年度 小于9999年

* @param weekNum 1到52或者53

* @return 日期,格式为yyyy-MM-dd

*/

public static String getYearWeekFirstDay(int yearNum,int weekNum) {

if(yearNum1900 || yearNum 9999){

throw new NullPointerException("年度必须大于等于1900年小于等于9999年");

}

Calendar cal = Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一

cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//每周从周一开始

// 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。

cal.setMinimalDaysInFirstWeek(7); //设置每周最少为7天

cal.set(Calendar.YEAR, yearNum);

cal.set(Calendar.WEEK_OF_YEAR, weekNum);

//分别取得当前日期的年、月、日

return getFormatDate(cal.getTime());

}

/**

* 计算某年某周的结束日期

* @param yearNum 格式 yyyy ,必须大于1900年度 小于9999年

* @param weekNum 1到52或者53

* @return 日期,格式为yyyy-MM-dd

*/

public static String getYearWeekEndDay(int yearNum,int weekNum) {

if(yearNum1900 || yearNum 9999){

throw new NullPointerException("年度必须大于等于1900年小于等于9999年");

}

Calendar cal = Calendar.getInstance();

cal.setFirstDayOfWeek(Calendar.MONDAY); //设置每周的第一天为星期一

cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//每周从周一开始

// 上面两句代码配合,才能实现,每年度的第一个周,是包含第一个星期一的那个周。

cal.setMinimalDaysInFirstWeek(7); //设置每周最少为7天

cal.set(Calendar.YEAR, yearNum);

cal.set(Calendar.WEEK_OF_YEAR, weekNum);

return getFormatDate(cal.getTime());

}

java怎么获取本周一到周末时间

/**

     * 获取上周五时间

     */

    public Date lastFirday() {

//作用防止周日得到本周日期

        Calendar calendar = Calendar.getInstance();

        while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {

            calendar.add(Calendar.DAY_OF_WEEK, -1);

        }

        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;

        int offset = 7 - dayOfWeek;

        calendar.add(Calendar.DATE, offset - 9);

        return DateTimeUtil.getFirstDayOfWeek(calendar.getTime(), 6);//这是从上周日开始数的到本周五为6

    }

 

/**

     * 获取上周一时间

     */

    public Date lastMonday() {

        Calendar calendar = Calendar.getInstance();

        while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {

            calendar.add(Calendar.DAY_OF_WEEK, -1);

        }

        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;

        int offset = 1 - dayOfWeek;

        calendar.add(Calendar.DATE, offset - 7);

        return DateTimeUtil.getFirstDayOfWeek(calendar.getTime(), 2);

    }

参考

请采纳,谢谢

java计算本周的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java计算本周开始和结束日期、java计算本周的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。