Java获取月中周三和周四的日期

Java获取月中周三和周四的日期,第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);

}

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

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

//输入日期取星期几的方法 public String getWeekDay(String DateStr){

SimpleDateFormat formatYMD=new SimpleDateFormat("yyyy-MM-dd");//formatYMD表示的是yyyy-MM-dd格式

SimpleDateFormat formatD=new SimpleDateFormat("E");//"E"表示"day in week"

Date d=null;

String weekDay="";try{d=formatYMDparse(DateStr);//将String 转换为符合格式的日期

weekDay=formatDformat(d);

}catch (Exception e){

eprintStackTrace();}//Systemoutprintln("日期:"+DateStr+" : "+weekDay);

return weekDay;

} //计算两个时间段中间的日期的方法

public String[][] findDates(String start_time, String end_time) throws ParseException {

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

Date date1= dfparse(start_time);

Date date2= dfparse(end_time);

int s = (int) ((date2getTime() - date1getTime())/ (24 60 60 1000));

String value[][] = new String[s+1][1];if(s+1>0){for(int i = 0;i<=s;i++){

long todayDate = date1getTime() + i 24 60 60 1000;

Date tmDate = new Date(todayDate);

        Calendar cal = CalendargetInstance();

        calclear();

        calset(CalendarYEAR, 2014);

        calset(CalendarWEEK_OF_YEAR,7);

        calset(CalendarDAY_OF_WEEK, CalendarSUNDAY);

        Systemoutprintln(calgetTime());

        calset(CalendarDAY_OF_WEEK, CalendarSATURDAY);

        Systemoutprintln(calgetTime());

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

}

}

/

  获取两个日期相差的天数

  @param big

  @param small

  @return

 /

public static int getTwoDatesDifOfDay(Date big,Date small){

Calendar cal1 = CalendargetInstance();

cal1setTime(big);

Calendar cal2 = CalendargetInstance();

cal2setTime(small);

if(cal1get(CalendarMONTH) != 11 && cal2get(CalendarMONTH)==11){//跨年

Calendar cal3 = CalendargetInstance();

cal3set(CalendarMONTH, 11);

cal3set(CalendarDAY_OF_MONTH, 31);

return cal3get(CalendarDAY_OF_YEAR)-cal2get(CalendarDAY_OF_YEAR)+cal1get(CalendarDAY_OF_YEAR);

}else{

return  cal1get(CalendarDAY_OF_YEAR)-cal2get(CalendarDAY_OF_YEAR);

}

}

/

  获取两个日期相差的周数

  @param big

  @param small

  @return

 /

public static int getTwoDatesDifOfWeek(Date big,Date small){

Calendar cal1 = CalendargetInstance();

cal1setTime(big);

Calendar cal2 = CalendargetInstance();

cal2setTime(small);

if(cal1get(CalendarMONTH) != 11 && cal2get(CalendarMONTH)==11){//跨年

Calendar cal3 = CalendargetInstance();

cal3set(CalendarMONTH, 11);

cal3set(CalendarDAY_OF_MONTH, 31);

return cal3get(CalendarWEEK_OF_YEAR)-cal2get(CalendarWEEK_OF_YEAR)+cal1get(CalendarWEEK_OF_YEAR);

}else{

return  cal1get(CalendarWEEK_OF_YEAR)-cal2get(CalendarWEEK_OF_YEAR);

}

}

我的程序是输入某年某周,输出这一周的开始日期和结束时期,不知是否符合你的需要。至少Java是不直接提供这种方法的。

import javautil;

public class Test31 {

public static void main(String[] args) {

int year, year1, year2, month1, month2, day1, day2, week, sum = 0;

int[] days = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

int i;

Scanner scan = new Scanner(Systemin);

Systemoutprint("年:");

year = scannextInt();

Systemoutprint("周次:");

week = scannextInt();

if (year < 0) {

Systemoutprintln("年份错误,必须大于等于0");

return;

}

if (week < 1 || week > 54) {

Systemoutprintln("周次错误,必须位于 1 53 之间");

return;

}

sum += 7 (week - 1);

//修正总天数

Calendar c = CalendargetInstance();

cset(year, 0, 1);

switch (cget(CalendarDAY_OF_WEEK))

{

case CalendarTUESDAY:

{

sum -= 1;

break;

}

case CalendarWEDNESDAY:

{

sum -= 2;

break;

}

case CalendarTHURSDAY:

{

sum -= 3;

break;

}

case CalendarFRIDAY:

{

sum -= 4;

break;

}

case CalendarSATURDAY:

{

sum -= 5;

break;

}

case CalendarSUNDAY:

{

sum -= 6;

break;

}

default:

break;

}

if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {

days[1] = 29;

}

for (i = 0; i < dayslength; i++) {

if (sum >= days[i]) {

sum -= days[i];

}

else {

break;

}

}

year1 = year;

month1= i + 1;

day1 = sum + 1;

//修改开始日期

if (day1 < 1) {

day1 += days[11];

month1 = 12;

year1--;

}

year2 = year1;

month2 = month1;

day2 = day1 + 6;

if (day2 > days[month1 - 1]) {

day2 -= days[month1 - 1];

month2++;

if (month2 > 12) {

month2 = 1;

year2++;

}

}

Systemoutprintf("%d年第%d周 : %d年%d月%d日 ~ %d年%d月%d日", year, week, year1, month1, day1, year2, month2, day2);

}

}

输出测试:

年:2011

周次:22

2011年第22周 : 2011年5月23日 ~ 2011年5月29日

年:2011

周次:1

2011年第1周 : 2010年12月27日 ~ 2011年1月2日

这是从星期一至星期日。

也可以这样:

public static void main(String[] args){

Scanner scan = new Scanner(Systemin);

Systemoutprint("年:");

int year = scannextInt();

Systemoutprint("周:");

int week = scannextInt();

Calendar c = CalendargetInstance();

cset(CalendarDAY_OF_WEEK, 1);

cset(CalendarWEEK_OF_YEAR, week);

//该周第一天(星期日)所在的日期

int y1 = cget(CalendarYEAR);

int m1 = cget(CalendarMONTH) + 1;

int d1 = cget(CalendarDATE);

cadd(CalendarDATE, 6);

//该周最后一天(星期六)所在的日期

int y2 = cget(CalendarYEAR);

int m2 = cget(CalendarMONTH) + 1;

int d2 = cget(CalendarDATE);

Systemoutprintf("%d年第%d周:%d-%d-%d ~ %d-%d-%d", year, week, y1, m1, d1, y2, m2, d2);

}

这是从星期日开始,如:

年:2011

周:22

2011年第22周:2011-5-22 ~ 2011-5-28

以上就是关于Java获取月中周三和周四的日期全部的内容,包括:Java获取月中周三和周四的日期、java 输入日期取星期几的方法 计算两个时间段中间的、java 如何获取某一年中某一周的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存