자바 프로젝트 SMS 생년월일 형식 지정 코드

쪼레비·2021년 4월 15일
0
package GUI;

import java.time.LocalDate;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;

import javax.swing.JOptionPane;

public class SMS_Check_Input_Birth {
	
	//	SMS 에서는 SMS_Manager.SMS_panel_table.textfield_Input_student_birth.getText() 로 사용

	public int checkInputBirth(String checkBirth){
		
		int resultInt = 0;
		
		if(checkBirth.length() != 10){
			JOptionPane.showMessageDialog(null, "생일을 아래와 같은 형식으로 입력해주세요. \n0000-00-00");
			SMS_Manager.SMS_panel_table.textfield_Input_student_birth.requestFocus();
			resultInt = 1;
			return resultInt;
		}
		
		String year = checkBirth.substring(0, 4).toString();
		System.out.println("year : " + year);
		
		LocalDate nowDate = LocalDate.now();
		nowDate.getYear();
		
		int yearInt = Integer.parseInt(year);
		if(yearInt < 1 || yearInt > nowDate.getYear()){
			JOptionPane.showMessageDialog(null, "생일 연도를 확인해주세요");
			SMS_Manager.SMS_panel_table.textfield_Input_student_birth.requestFocus();
			resultInt = 1;
			return resultInt;
		}
		
		String bar = checkBirth.substring(4, 5).toString();
		System.out.println(bar);
		
		if(!bar.equals("-")){
			JOptionPane.showMessageDialog(null, "생일을 아래와 같은 형식으로 입력해주세요. \n0000-00-00");
			SMS_Manager.SMS_panel_table.textfield_Input_student_birth.requestFocus();
			resultInt = 1;
			return resultInt;
		}
		
		String month = checkBirth.substring(5, 7).toString();
		System.out.println("month : " + month);
		
		int monthInt = Integer.parseInt(month);
		if(monthInt < 1 || monthInt > 12){
			JOptionPane.showMessageDialog(null, "생일 월을 확인해주세요");
			SMS_Manager.SMS_panel_table.textfield_Input_student_birth.requestFocus();
			resultInt = 1;
			return resultInt;
		}
		
		String bar2 = checkBirth.substring(7, 8).toString();
		System.out.println(bar2);
		
		if(!bar2.equals("-")){
			JOptionPane.showMessageDialog(null, "생일을 아래와 같은 형식으로 입력해주세요. \n0000-00-00");
			SMS_Manager.SMS_panel_table.textfield_Input_student_birth.requestFocus();
			resultInt = 1;
			return resultInt;
		}
		
		String day = checkBirth.substring(8, 10).toString();
		System.out.println("day : " + day);
		
		/*
		System.out.println(novemberYearMonth.lengthOfMonth());	//	그 달의 날 수
		System.out.println(novemberYearMonth.atEndOfMonth());	//	마지막 날짜
		*/
		
		String novemberDate = year+bar+month+bar2+"01";
		YearMonth novemberYearMonth =
				YearMonth.from(LocalDate.parse(novemberDate, DateTimeFormatter.ofPattern("yyyy-MM-dd")));
		
		int dayInt = Integer.parseInt(day);
		if(dayInt < 1 || dayInt > novemberYearMonth.lengthOfMonth()){
			JOptionPane.showMessageDialog(null, "생일 날짜를 확인해주세요.");
			SMS_Manager.SMS_panel_table.textfield_Input_student_birth.requestFocus();
			resultInt = 1;
			return resultInt;
		}
		return resultInt;
	}
}
profile
잠팅이

0개의 댓글