본문 바로가기

JAVA/기초 프로그래밍

Calendar 캘린더 Class


번외;

지정된 날짜 범위를 뽑아내기 해보기

dateClass찾아보기

가계부, 주소록;

========================================================
일	월	화	수	목	금	토	
========================================================
*	*	*	*	*	*	1	
2	3	4	5	6	7	8	
9	10	11	12	13	14	15	
16	17	18	19	20	21	22	
23	24	25	26	27	28	29	
30	31	*	*	*	*	*	

 


import java.util.Calendar;
import java.util.GregorianCalendar;

public class mainClass {

	public static void main(String[] args) {
		/*
		 	Calendar	-> year month day
		 	Date
		 */
		
		//일정관리
		//Calendar cal = new GregorianCalendar();

		Calendar cal = Calendar.getInstance();
		
		//날짜
		//getter
		int year = cal.get(Calendar.YEAR);
		int month = cal.get(Calendar.MONTH)+1;	//0~11이 기본값이여서 +1, 다시 넣을때는 -1
		int day = cal.get(Calendar.DATE);
		
		System.out.println(year + "년"+ month + "월"+ day+"일");
		//->2020년6월3일//오늘
		
		//setter
		cal.set(Calendar.YEAR, 2021);
		cal.set(Calendar.MONTH, Calendar.JANUARY);
		cal.set(Calendar.DATE, 15);
		
		year = cal.get(Calendar.YEAR);
		month = cal.get(Calendar.MONTH)+1;	//0~11이 기본값이여서 +1, 다시 넣을때는 -1
		day = cal.get(Calendar.DATE);
		System.out.println(year + "년"+ month + "월"+ day+"일");
		//->2021년1월15일
		
		//요일
		int weekday = cal.get(Calendar.DAY_OF_WEEK);//1~7까지(일~토)
		System.out.println(weekday);
		//->6
		
		switch (weekday) {
		case 6:
			System.out.println("금요일입니다");
			break;

		}
		cal.set(Calendar.YEAR, 2020);
		cal.set(Calendar.MONTH, 6 - 1);//10월 15일, (15일은 고정)월은 여기서 수정
		
		//지정한 달의 마지막 날짜 28 29 30 31
		int lastday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
		System.out.println("lastday = "+ lastday);
		//->lastday = 30
		
		//위의 빈칸
		cal.set(Calendar.DATE, 1);//1일로 셋팅
		
		weekday = cal.get(Calendar.DAY_OF_WEEK);//1~7
		int up = (weekday - 1) % 7; //위의 빈칸 개수
		
		System.out.println("윗쪽 빈칸의 수 : "+up);
		//->윗쪽 빈칸의 수 : 1
		
		lastday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
		System.out.println("그 달의 마지막 날 : "+lastday);
		//->그 달의 마지막 날 : 30
		
		//밑의 빈칸수
		cal.set(Calendar.DATE,lastday);
		weekday = cal.get(Calendar.DAY_OF_WEEK);
		
		int down = 7 - weekday;
		System.out.println("밑쪽의 빈칸의 수 : "+down);
		//->밑쪽의 빈칸의 수 : 4
		
		//달력 출력
		year = 2021;
		month = 5;
		cal.set(Calendar.YEAR,year);
		cal.set(Calendar.MONTH, month-1);
		cal.set(Calendar.DATE, 1);
		
		int _startday = cal.get(Calendar.DAY_OF_WEEK);
		int _lastday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
		int _date = 1;
		
		System.out.println(year + "년  "+month + "월");
		//->2021년  5월
		System.out.println("========================================================");
		
		String week_day = "일월화수목금토";
		
		for (int i = 0; i < week_day.length(); i++) {
			char c = week_day.charAt(i);
			System.out.print(c+"\t");
		}
		System.out.println();
		System.out.println("========================================================");
		
		//윗쪽 빈칸
		for (int i = 1; i < _startday; i++) {
			System.out.print("*"+"\t");
			
		}
		
		//날짜
		for (int i = 0; i < _lastday; i++) {
			System.out.print(_date+"\t");
			
			if ((_date + _startday - 1) % 7 == 0) {
				System.out.println();
			}
			_date++;
			
		}
		
		//밑쪽 빈칸
		
		for (int i = 0; i < (7 - (_startday + _lastday - 1) % 7); i++) {
			System.out.print("*"+"\t");
			
		}
		System.out.println();
		System.out.println("========================================================");

	}
//날짜 셋팅, 요일,
}
//->결과
//========================================================
//일	월	화	수	목	금	토	
//========================================================
//*	*	*	*	*	*	1	
//2	3	4	5	6	7	8	
//9	10	11	12	13	14	15	
//16	17	18	19	20	21	22	
//23	24	25	26	27	28	29	
//30	31	*	*	*	*	*	
//========================================================

'JAVA > 기초 프로그래밍' 카테고리의 다른 글

야구선수 등록 프로그램(답안)  (0) 2020.06.05
야구선수 등록 프로그램(Me)  (0) 2020.06.05
객체//베팅게임  (0) 2020.06.02
객체//tv프로그램  (0) 2020.06.02
객체//모래게임  (0) 2020.06.02