IT Study/Java Calender 도뿌리 2018. 5. 24. 08:48 import java.util.Calendar; import java.util.GregorianCalendar; public class myClass { public static void main(String[] args) { // Calendar == 달력 // 첫번째 방법 // Calendar cal = new GregorianCalendar(); // 두번째 방법 Calendar cal = Calendar.getInstance(); // 취득 getter int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; // 달은 0부터 시작함 int day = cal.get(Calendar.DATE); System.out.println(year + "년 " + month + "월 " + day + "일"); // 설정 setter cal.set(Calendar.YEAR,2019); cal.set(Calendar.MONTH, Calendar.JUNE);// 두번째 인자를 숫자로 입력해도 되고 Calendar의 값을 가져와도 된다. cal.set(Calendar.DATE, 23); year = cal.get(Calendar.YEAR); month = cal.get(Calendar.MONTH) + 1; // 달은 0부터 시작함 day = cal.get(Calendar.DATE); System.out.println(year + "년 " + month + "월 " + day + "일"); String ampm = cal.get(Calendar.AM_PM) == 0 ? "오전" : "오후"; System.out.println("ampm = " + ampm); // 일~토 (1~7) int weekDay = cal.get(Calendar.DAY_OF_WEEK); System.out.println("weekDay = " + weekDay); switch (weekDay) { case 1: System.out.println("일요일"); break; case 2: System.out.println("월요일"); break; case 3: System.out.println("화요일"); break; case 4: System.out.println("수요일"); break; case 5: System.out.println("목요일"); break; case 6: System.out.println("금요일"); break; case 7: System.out.println("토요일"); break; } cal.set(Calendar.YEAR, 2020); cal.set(Calendar.MONTH, 2 - 1); // 지정한 달의 마지막 날짜 == 28, 29, 30, 31 int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); System.out.println("lastDay = " + lastDay); // 연월일을 설정하면 달력의 빈칸이 몇개있는지 year = 2018; month = 7; day = 1; cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month - 1); cal.set(Calendar.DATE, day); // 요일 // 1일의 요일을 구함 weekDay = cal.get(Calendar.DAY_OF_WEEK); // 1 ~ 7 // 일요일이 시작이면 윗쪽에 빈칸이 없음 /* 빈칸의 갯수 일 -0 월-1 화-2 수-3 목-4 금-5 토-6 따라서 (weekDay-1) % 7 은 윗줄의 빈칸 갯 수 */ int _day = (weekDay - 1) % 7; System.out.println(month + "월의 윗쪽의 빈칸 수 = " + _day); ///////////////////////////////////////////////////////////// // 밑칸 공백 구하기 // 날짜를 마지막 날로 저장 lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH); cal.set(Calendar.DATE, lastDay); // 마지막날의 요일을 구함 // 요일 weekDay = cal.get(Calendar.DAY_OF_WEEK); System.out.println("weekDay = " + weekDay); // 7에서 마지막날의 요일을 빼주면 밑칸의 공백이 나온다. // ex) 마지막 날의 요일 - 화 (3) // 7-3 = 4 ->> (수 목 금 토) 총 4개의 공백이 생김 // 마지막날이 일요일이면 1개의 칸을 갖고 있기 때문에 6개의 공백이 생김 // 따라서 해당 요일의 수를 7에서 빼주면 밑쪽의 빈칸 갯수가 나온다. int _lastday = 7 - weekDay; System.out.println("이 달의 밑쪽의 빈칸 수 = " + _lastday); } } 저작자표시 비영리 동일조건