急:用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就行了

希望能帮助你。

取得时间类

1、Date ,Systemoutprintln(new date());

2、calendar 此类是抽象类,要想实例化,需要实例化子类GregorianCalendar

看看jdk的API中给了相应的方法:注意月份需要加1;

有时候希望对格式进行转换。

SimpleDateFormat类 此类在javatext包下

1、准备原格式,2、准备新格式 3、转化

String str = "2011-09-11 16:35:06";

SimpleDateFormat sd = new SimpleDateFormate("yyyy-MM-dd HH:mm:ss");

SimpleDateFormat sd2 = new SimpleDateFormate("yyyy

年MM月dd日 HH时mm分ss秒")

//然后进行转化

Date d = sdparse(str);

将时间数插入sd2上

String newStr = sd2format(d);

Systemoutprintln(newStr);

    public static void main(String[] args) throws ParseException {

        int year = 2017;

        Calendar calendar = new GregorianCalendar(year, 0, 1);

        int i = 1;

        while (calendarget(CalendarYEAR) < year + 1) {

            calendarset(CalendarWEEK_OF_YEAR, i++);

            calendarset(CalendarDAY_OF_WEEK, CalendarSUNDAY);

            if (calendarget(CalendarYEAR) == year) {

                Systemoutprintf("星期天:%tF%n", calendar);

            }

            calendarset(CalendarDAY_OF_WEEK, CalendarSATURDAY);

            if (calendarget(CalendarYEAR) == year) {

                Systemoutprintf("星期六:%tF%n", calendar);

            }

        }

    }

/

获取上周五时间

/

public Date lastFirday() {

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

Calendar calendar = CalendargetInstance();

while (calendarget(CalendarDAY_OF_WEEK) != CalendarMONDAY) {

calendaradd(CalendarDAY_OF_WEEK, -1);

}

int dayOfWeek = calendarget(CalendarDAY_OF_WEEK) - 1;

int offset = 7 - dayOfWeek;

calendaradd(CalendarDATE, offset - 9);

return DateTimeUtilgetFirstDayOfWeek(calendargetTime(), 6);//这是从上周日开始数的到本周五为6

}

/

获取上周一时间

/

public Date lastMonday() {

Calendar calendar = CalendargetInstance();

while (calendarget(CalendarDAY_OF_WEEK) != CalendarMONDAY) {

calendaradd(CalendarDAY_OF_WEEK, -1);

}

int dayOfWeek = calendarget(CalendarDAY_OF_WEEK) - 1;

int offset = 1 - dayOfWeek;

calendaradd(CalendarDATE, offset - 7);

return DateTimeUtilgetFirstDayOfWeek(calendargetTime(), 2);

}

import javatextSimpleDateFormat;

import javautilCalendar;

public class DateUtil {

/

@param year 年份

@param month 月份

@param weekOfMonth 这个月的第几周

@param dayOfWeek 星期几

@return

/

public static String weekdatetodata(int year,int month,int weekOfMonth,int dayOfWeek){

Calendar c = CalendargetInstance();

//计算出 x年 y月 1号 是星期几

cset(year, month-1, 1);

//如果i_week_day =1 的话 实际上是周日

int i_week_day = cget(CalendarDAY_OF_WEEK);

int sumDay = 0;

//dayOfWeek+1 就是星期几(星期日 为 1)

if(i_week_day == 1){

sumDay = (weekOfMonth-1)7 + dayOfWeek+1;

}else{

sumDay = 7-i_week_day+1 + (weekOfMonth-1)7 + dayOfWeek +1;

}

//在1号的基础上加上相应的天数

cset(CalendarDATE, sumDay);

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

return sf2format(cgetTime());

}

public static void main(String[] args) {

//2009年1月 第二周星期三 得到2009-01-14

Systemoutprintln(weekdatetodata(2009, 1, 2, 3));

//2009年2月 第二周星期三 得到2009-02-11

Systemoutprintln(weekdatetodata(2009, 2, 2, 3));

//2009年4月 第二周星期三 得到2009-04-15

Systemoutprintln(weekdatetodata(2009, 4, 2, 3));

//2009年2月 第三周星期四 得到2009-02-19

Systemoutprintln(weekdatetodata(2009, 2, 3, 4));

}

}

1,获取整年的天数

2,获取整月的天数

3,将信息输出

4,效果如下

5,博客地址参考:>

import javasqlDate;

public class TestWeek {

public static void main(String[] args) {

//2007-1-1 刚好是星期一,就从这天开始算

Date d = DatevalueOf("2007-1-1");

Date dd = DatevalueOf("2007-1-2");

final long oneDayTime = ddgetTime() - dgetTime(); //得到一天的long值

final long weekTime = oneDayTime 7; // 一周的long值

int start = 2007; //起始年2007

int end = 10; //要计算的年数,这里可以增加,当前计算今后10年

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

int currYear = start + i; //当前要计算的年

String tt = currYear + "-1-1";//tt:当前要计算的年的元旦日期

Date cuttIime = DatevalueOf(tt);

long count = cuttIimegetTime() - dgetTime(); //得到余下时间的long值,距离2007-1-1

long many = count % weekTime; //余下时间的天数的long值

int w = (int) (many / oneDayTime);//余下的天数

print(currYear,w);//打印日期

}

}

public static void print(int y,int i) {

String week = null;

switch (i) {

case 1:

week = "二"; break;

case 2:

week = "三";break;

case 3:

week = "四";break;

case 4:

week = "五";break;

case 5:

week = "六";break;

case 6:

week = "日";break;

case 0:

week = "一";break;

};

Systemoutprintln(y +" 年的元旦是星期" + week);

}

}

结果:未来30年:

2008 年的元旦是星期二

2009 年的元旦是星期四

2010 年的元旦是星期五

2011 年的元旦是星期六

2012 年的元旦是星期日

2013 年的元旦是星期二

2014 年的元旦是星期三

2015 年的元旦是星期四

2016 年的元旦是星期五

2017 年的元旦是星期日

2018 年的元旦是星期一

2019 年的元旦是星期二

2020 年的元旦是星期三

2021 年的元旦是星期五

2022 年的元旦是星期六

2023 年的元旦是星期日

2024 年的元旦是星期一

2025 年的元旦是星期三

2026 年的元旦是星期四

2027 年的元旦是星期五

2028 年的元旦是星期六

2029 年的元旦是星期一

2030 年的元旦是星期二

2031 年的元旦是星期三

2032 年的元旦是星期四

2033 年的元旦是星期六

2034 年的元旦是星期日

2035 年的元旦是星期一

2036 年的元旦是星期二

2037 年的元旦是星期四

获取本周一

 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包 你需要下载下 就可以使用

以上就是关于急:用java如何得到当前月的第一天是星期几全部的内容,包括:急:用java如何得到当前月的第一天是星期几、请问高手,用Calendar包实现,在java中如何获取指定年月日的星期、java如何获取每个月的所有周六周日日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存