急:用java如何得到当前月的第一天是星期几

急:用java如何得到当前月的第一天是星期几,第1张

这个比较简单,4行代码就行

Calendar calendar = CalendargetInstance();

calendarset(CalendarDAY_OF_MONTH, 1);

SimpleDateFormat format = new SimpleDateFormat("E");

Systemoutprintln("本月第一天是:" + formatformat(calendargetTime()));

如果你要得到一个数字的话就是:

calendarget(CalendarDAY_OF_WEEK),当然,这个结果是以星期天为第一天算出来的,如果要换成星期一开始,减1就行了

希望能帮助你。

你先取某一年的第一天为起点。比如2012年第一天是星期日

在判断这年是否是闰年,(2012年是闰年):

闰年的判断函数:

boolean isLeapYear( int year )

{

return (0==year%4) || (0==year%100 && 0==year%400 );

}

若是闰年,该年有366天,则星期数(如果7代表星期天)加减366%7后模7;

若是平年,该年有365天,则星期数加减365%7模7。

如果是算未来(对2012来说)则加(一年的天数)%7后模7,反之则减(一年的天数)%7后模7。

比如2013年第一天是星期 [ 7+(366)%7]%7;2011年第一天是星期 [7-(365)%7]%7;

用SimpleDateFormat

import javatextParseException;

import javatextSimpleDateFormat;

import javautilDate;

public class Test030 {

    public static void main(String[] args){

        String s = "2013/9";

        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd");

        sdf1setLenient(false);

        SimpleDateFormat sdf2 = new SimpleDateFormat("EEE");

        for(int i = 1; i < 32; i++){

            try {

                Date date = sdf1parse(s + "/" + i);

                Systemoutprintln(sdf1format(date) + " : " + sdf2format(date));

            } catch (ParseException e) {

                //do nothing

            }

        }

                              

    }

                          

}

输入结果:

2013/09/01 : 星期日

2013/09/02 : 星期一

2013/09/03 : 星期二

2013/09/04 : 星期三

2013/09/05 : 星期四

2013/09/06 : 星期五

2013/09/07 : 星期六

2013/09/08 : 星期日

2013/09/09 : 星期一

2013/09/10 : 星期二

2013/09/11 : 星期三

2013/09/12 : 星期四

2013/09/13 : 星期五

2013/09/14 : 星期六

2013/09/15 : 星期日

2013/09/16 : 星期一

2013/09/17 : 星期二

2013/09/18 : 星期三

2013/09/19 : 星期四

2013/09/20 : 星期五

2013/09/21 : 星期六

2013/09/22 : 星期日

2013/09/23 : 星期一

2013/09/24 : 星期二

2013/09/25 : 星期三

2013/09/26 : 星期四

2013/09/27 : 星期五

2013/09/28 : 星期六

2013/09/29 : 星期日

2013/09/30 : 星期一

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

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

}

}

}

public static void main(String[] agrs) {

String newtime="2013-8-4";

Systemoutprintln(newtime+""+testDate(newtime));

}

public static String testDate(String newtime) {

String dayNames[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

int week1[] = {7,1,2,3,4,5,6};

Calendar c = CalendargetInstance();// 获得一个日历的实例

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

try {

csetTime(sdfparse(newtime));

} catch (ParseException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

String a=dayNames[cget(CalendarDAY_OF_WEEK)-1];

int b=week1[cget(CalendarDAY_OF_WEEK)-1];

if(b!=7){

cset(CalendarDAY_OF_WEEK, CalendarMONDAY);

}else{

cadd(CalendarWEEK_OF_MONTH, -1);

cset(CalendarDAY_OF_WEEK, 2);

}

for(int i=1;i<b;i++){

if(i==1){

Systemoutprintln(sdfformat(cgetTime()));//本周一

}

cadd(CalendarDATE,1);

Systemoutprintln(sdfformat(cgetTime()));

}

Systemoutprintln("-------------");

return a;

}

测试结果:

2013-07-29

2013-07-30

2013-07-31

2013-08-01

2013-08-02

2013-08-03

2013-08-04

-------------

2013-8-4星期日

以上就是关于急:用java如何得到当前月的第一天是星期几全部的内容,包括:急:用java如何得到当前月的第一天是星期几、java中如何求出某一年第一天是星期几、java 获取某一月的所有周的日期段(周一到周日)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存