Calendar 클래스를 이용해서 달력 출력하기.
Calendar가 가지고 있는 필드를 적절히 이용하면 내가 원하는 달의 달력을 출력할 수 있다.
근데 성능은 좋은 건지 모르겠다...
<출력결과>
import java.util.Calendar;
import java.util.Scanner;
public class Example
{
public static void main(String[] args)
{
Calendar cal = Calendar.getInstance();
Scanner scan = new Scanner(System.in);
cal.clear();
System.out.println("연");
int y = scan.nextInt();
System.out.println("월");
int m = scan.nextInt();
cal.set(y, m - 1, 1);
int weekday = cal.get(Calendar.DAY_OF_WEEK); // 1일의 요일 구하기
System.out.println("일\t월\t화\t수\t목\t금\t토");
for(int i = 1; i < weekday; i++) // 1일 전까지 비어있는 요일에 * 출력
{
System.out.print("*\t");
}
for(int i = 0; i < 31; i++) // 최대 31번 루프
{
int day = cal.get(Calendar.DAY_OF_MONTH); // Calender instance의 현재 날짜
if(i > 1 && day == 1) // day에 1씩 더하기 하다가 새로운 1일이 시작되면 끝내기
{
break;
}
System.out.print(day + "\t"); // 날짜 출력하기
cal.add(Calendar.DAY_OF_MONTH, 1); // 1일 더하기
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) // 새 날짜의 요일이 일요일이면
{
System.out.println(); // 줄바꿈하기
}
}
}
}
'PROGRAMMING > 예제' 카테고리의 다른 글
[JavaScript] 체크박스에 체크된 값만 계산하기 (0) | 2022.03.28 |
---|---|
[Python] 주민등록번호 입력받고 생년월일 출력하기 (0) | 2022.01.22 |
[Java] 중복되지 않는 숫자만 배열에 집어넣고 싶은 사람만 보세요 (0) | 2021.11.24 |
[Java] 솟수를 솟솟, 소수(Prime Number) 구하기. (0) | 2021.11.19 |
[Java] 윤년 계산하기 (0) | 2021.11.16 |