根据每年的第几个月的第几个周来计算这周的首尾日期

版权声明:转载标注 孙德超 -Q-2466536634 https://blog.csdn.net/weixin_44395185/article/details/85758490

如下是源码:

package com.example.until;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class ReturnDateUntil {
	
	public static int [] returnDate (String str) {
		

		String [] arr = str.split("\\$");
		int [] dateInt = {Integer.valueOf(arr[0]),Integer.valueOf(arr[1]),Integer.valueOf(arr[2])}; 
		
		return dateInt;
		
	}
	
	public static int getWeek(String date) {
	        Calendar cal = Calendar.getInstance();
	        SimpleDateFormat format = new SimpleDateFormat("yyyy$MM$WW");
	        try {
	            cal.setTime(format.parse(date));
	        } catch (ParseException e) {
	            e.printStackTrace();
	        }
	        int week = cal.get(Calendar.DAY_OF_MONTH);
	        return week;
	    }

	public static String [] getReturnDateUntil(String str) {
				
		int [] arr  = returnDate (str);
		int year = arr[0] ;
		int month = arr[1] ;
		
		int startDay = getWeek(str);
		int endDay = getWeek(arr[0]+"$"+arr[1]+"$"+(arr[2]+1));
		
		int startMonth = arr[1] ;
		int endMonth = arr[1] ;
		
		int startYear = arr[0] ;
		int endYear= arr[0] ;

		if(endDay<startDay) {
			if( arr[2] == 1 ) {
			
				if(month!=1) {
					startMonth = month-1 ;
				}else {
					startMonth = 12 ;
					startYear = year -1 ;
				}
				
			}else {
				if(month!=12) {
					endMonth = month+1 ;
				}else {
					endMonth = 1 ;
					endYear = year+1 ;
				}
			
			}			
		}
		
		String[]  returnStr = {startYear+","+startMonth+","+startDay,endYear+","+endMonth+","+endDay};
		return returnStr;

	}

}

猜你喜欢

转载自blog.csdn.net/weixin_44395185/article/details/85758490
今日推荐