Java中获取本周内所有日期

Java中获取本周内所有日期,第1张

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()));

}

}

参考一下:

import javatext;

import javautilDate;

/

  SimpleDateFormat函数语法:

  

  G 年代标志符

  y 年

  M 月

  d 日

  h 时 在上午或下午 (1~12)

  H 时 在一天中 (0~23)

  m 分

  s 秒

  S 毫秒

  E 星期

  D 一年中的第几天

  F 一月中第几个星期几

  w 一年中第几个星期

  W 一月中第几个星期

  a 上午 / 下午 标记符 

  k 时 在一天中 (1~24)

  K 时 在上午或下午 (0~11)

  z 时区

 /

public class FormatDateTime {

    public static void main(String[] args) {

        SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");

        SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm"); 

        SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于nowtoLocaleString()

        SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");

        SimpleDateFormat myFmt4=new SimpleDateFormat(

                "一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");

        Date now=new Date();

        Systemoutprintln(myFmtformat(now));

        Systemoutprintln(myFmt1format(now));

        Systemoutprintln(myFmt2format(now));

        Systemoutprintln(myFmt3format(now));

        Systemoutprintln(myFmt4format(now));

        Systemoutprintln(nowtoGMTString());

        Systemoutprintln(nowtoLocaleString());

        Systemoutprintln(nowtoString());

    }    

    

}

你想要哪个值,就传对应的字母进去就行了。

上面魔法师的回答很精典,但是while循环可以更简洁些:

while(cget(CalendarYEAR)== year){ //只从输入的年份开始循环

if(cget(CalendarDAY_OF_WEEK)==3){

Systemoutprintln("星期二:"+fformat(cgetTime()));

}

cset(CalendarDATE,cget(CalendarDATE)+1);

}

//有一个问题是:在cset(year,1,1);语句中魔法师漏掉了一个月,应该是cset(year,0,1);否则就取不到1月份的日期

import javatextSimpleDateFormat;

import javautilCalendar;

public class WeekDemo {

    public static void main(String[] args) {

        printWeeks();

    }

    public static void printWeeks() {

        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");

        Calendar calendar = CalendargetInstance();

        calendarset(CalendarDATE, 1);

        int month = calendarget(CalendarMONTH);

        int count = 0;

        while (calendarget(CalendarMONTH) == month) {

            if (calendarget(CalendarDAY_OF_WEEK) == CalendarMONDAY) {

                StringBuilder builder = new StringBuilder();

                builderappend("week:");

                builderappend(++count);

                builderappend(" (");

                builderappend(formatformat(calendargetTime()));

                builderappend(" - ");

                calendaradd(CalendarDATE, 6);

                builderappend(formatformat(calendargetTime()));

                builderappend(")");

                Systemoutprintln(buildertoString());

            }

            calendaradd(CalendarDATE, 1);

        }

    }

}

mport javatextSimpleDateFormat;

import javautilCalendar;

public class Test{

public static void main(String args[]){

Calendar cal = CalendargetInstance();

//n为推迟的周数,1本周,-1向前推迟一周,2下周,依次类推

int n = 2;

String monday;

caladd(CalendarDATE, n7);

//想周几,这里就传几CalendarMONDAY(TUESDAY)

calset(CalendarDAY_OF_WEEK,CalendarMONDAY);

monday = new SimpleDateFormat("yyyy-MM-dd")format(calgetTime());

Systemoutprintln(monday);

}

}

import javatextDateFormatSymbols;

import javautilCalendar;

import javautilGregorianCalendar;

public class Test {

/

@param args

/

public static void main(String[] args){

Calendar c_begin = new GregorianCalendar();

Calendar c_end = new GregorianCalendar();

DateFormatSymbols dfs = new DateFormatSymbols();

String[] weeks = dfsgetWeekdays();

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

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

int count = 1;

c_endadd(CalendarDAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天

while(c_beginbefore(c_end)){

Systemoutprintln("第"+count+"周 日期:"+new javasqlDate(c_begingetTime()getTime())+", "+weeks[c_beginget(CalendarDAY_OF_WEEK)]);

if(c_beginget(CalendarDAY_OF_WEEK)==CalendarSUNDAY){

count++;

}

c_beginadd(CalendarDAY_OF_YEAR, 1);

}

}

}

==我去给你写。等下贴给你。

/

传入一个月份,得到这个月份所有的周三,周四将其打印出来。

@param month 参数指定的月份

@throws Exception

/

private void getwendsor(int month) throws Exception

{

if(month<1||month>12)

throw new Exception("请指定一个合法的月份。");

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Calendar cal=CalendargetInstance();

calset(CalendarMONTH,month-1);

calset(CalendarDAY_OF_MONTH, 1);

int day=1;

do

{

//Systemoutprintln(sdfformat(calgetTime())+" "+calget(CalendarDAY_OF_WEEK)+" "+CalendarWEDNESDAY);

if(calget(CalendarDAY_OF_WEEK)==CalendarWEDNESDAY)

Systemoutprintln(month+"月份的"+sdfformat(calgetTime())+ "是周三");

if(calget(CalendarDAY_OF_WEEK)==CalendarTHURSDAY)

Systemoutprintln(month+"月份的"+sdfformat(calgetTime())+ "是周四");

day++;

calset(CalendarDAY_OF_MONTH, day);

}while(calget(CalendarMONTH)+1==month);

}

这个方法是单独定义的,所以你可以随意调用,并且得到任意一个月份的周三或者周四。只需要在调用的时候指定您要查看的月份即可。

如果有疑问欢迎交流。呵呵

以上就是关于Java中获取本周内所有日期全部的内容,包括:Java中获取本周内所有日期、java calendar 获取日期数据的特定部分、如何得到一年的所有星期二的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/web/9620351.html

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

发表评论

登录后才能评论

评论列表(0条)

保存