java关于日期的一个小程序,帮忙改错,有注释。如何获取指定日期所在的周从哪一天开始

java关于日期的一个小程序,帮忙改错,有注释。如何获取指定日期所在的周从哪一天开始,第1张

Systemoutprintln(calget(CalendarMONDAY)+1+"月"+(calget(CalendarDAY_OF_MONTH)+1)+"日"); //输出日期

你第一问需要思考一下,你第二问日历类直接get即可!

第一问:

年末与年初进行周与周重叠的时候,获取的是第二年的第一周数字,这个时候其实很简单,因为月份是绝对不相同的对不

直接判断月份即可,头年月份肯定不会第二年月份想等,在同时判断一下,周是否为1,条件同时达到,就叠加52即可!

截个图,你参照日历看一下,分毫不差:

要获得第几周的信息,可以使用Calendar类的get方法,并将参数指定为 CalendarWEEK_OF_MONTH或者WEEK_OF_YEAR

例子代码

public class Main {

    /

      @param args the command line arguments

     /

    public static void main(String[] args) {

        Calendar cal = CalendargetInstance();

        Systemoutprintln("Current week of month: " + calget(CalendarWEEK_OF_MONTH));

        Systemoutprintln("Current week of year: " + calget(CalendarWEEK_OF_YEAR));

    }

}

获取本周一

 public static Date getNowWeekMonday(Date date) {    

            Calendar cal = CalendargetInstance();    

             calsetTime(date);    

                  

             caladd(CalendarDAY_OF_MONTH, -1); //解决周日会出现 并到下一周的情况    

            calset(CalendarDAY_OF_WEEK, CalendarMONDAY);    

                 

303            return calgetTime();    

        }

获取上周一

public static Date getLastWeekMonday(Date date) {    

             Date a = DateUtilsaddDays(date, -1);    

            Calendar cal = CalendargetInstance();    

            calsetTime(a);    

            caladd(CalendarWEEK_OF_YEAR, -1);// 一周    

            calset(CalendarDAY_OF_WEEK, CalendarMONDAY);    

                  

             return calgetTime();    

        }

获取上周日

public static Date  getLastWeekSunday(Date date) {    

                 

            Date a = DateUtilsaddDays(date, -1);    

           Calendar cal = CalendargetInstance();    

         calsetTime(a);    

           calset(CalendarDAY_OF_WEEK, 1);    

                 

          return calgetTime();    

        }

代码里面有用到 lapachecommon-ang包 你需要下载下 就可以使用

import javatextSimpleDateFormat;

import javautilCalendar;

public class DataTest {

public static void main(String[] args) {

printWeekdays();

}

private static final int FIRST_DAY = CalendarMONDAY;

private static void printWeekdays() {

Calendar calendar = CalendargetInstance();

setToFirstDay(calendar);

for (int i = 0; i < 7; i++) {

printDay(calendar);

calendaradd(CalendarDATE, 1);

}

}

private static void setToFirstDay(Calendar calendar) {

while (calendarget(CalendarDAY_OF_WEEK) != FIRST_DAY) {

calendaradd(CalendarDATE, -1);

}

}

private static void printDay(Calendar calendar) {

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd EE");

Systemoutprintln(dateFormatformat(calendargetTime()));

}

}

java中Calendar类中给出了求第几天第几周的方法的,所以直接引用即可。

Calendar ca = CalendargetInstance();//创建一个日期实例

casetTime(new Date());//实例化一个日期

Systemoutprintln(caget(CalendarDAY_OF_YEAR));//获取是第多少天

Systemoutprintln(caget(CalendarWEEK_OF_YEAR));//获取是第几周

备注:此方法提供了很多方法,如查月,日等等。

Calendar cal = CalendargetInstance();

int i = 1;

//DAY_OF_WEEK获取当前时间是一个星期的第几天,星期日是第一天 星期一是第二天,以此类推

//CalendarMONDAY判断是不是星期1

while(calget(CalendarDAY_OF_WEEK) != CalendarMONDAY){

calset(CalendarDAY_OF_MONTH, i++);//设置这个月的星期1 为几号

}

Date firstMonday = calgetTime();//取得日期和时间

String dtStr = new SimpleDateFormat("MM月dd日")format(firstMonday);//格式化日期

Systemoutprintln(dtStr);

Calendar c_begin = CalendargetInstance();

Calendar c_end = CalendargetInstance();

c_beginset(2010, 3, 1); //Calendar的月从0-11,所以4月是3

c_endset(2010, 4, 20); //Calendar的月从0-11,所以5月是4

int count = 0;

while(c_beginbefore(c_end)){

//Systemoutprintln(new javasqlDate(c_begingetTime()getTime()));

if(c_beginget(CalendarDAY_OF_WEEK)==CalendarMONDAY){

count++;

}

if(count == 2){

Systemoutprintln(c_beginget(CalendarYEAR)+"年"+(c_beginget(CalendarMONTH)+1)+"月"+c_beginget(CalendarDATE)+"日");

break;

}

c_beginadd(CalendarDAY_OF_YEAR, 1);

}

可以这样试试,应该能理解吧。如有不懂再问我

以上就是关于java关于日期的一个小程序,帮忙改错,有注释。如何获取指定日期所在的周从哪一天开始全部的内容,包括:java关于日期的一个小程序,帮忙改错,有注释。如何获取指定日期所在的周从哪一天开始、java如何得到指定日期月的第几周按每年的1号为第一周开始算。、java 获取iso 标准的日期的第几周等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9274420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存