삼항 연산자(if)
if문을 간결하게 작성할 수 있다.
int count = 7;
int delim = (count > 6) ? 0 : count;
// delim == 0
Double to int
int x = (int)Math.floor(year / 4);
달력 계산 알고리즘
생각 외로 달력이라는 녀석이 쉽지는 않다는 것을 깨달은 오늘..
하지만 개념만 이해한다면 충분히 구현할 수 있었다. 피하지 않는다면 시간이 걸리더라도 해낼 수 있다.
개념
- 1년 1월 1일부터 입력받은 현재 년도와 날짜까지 전체 날짜의 수를 구한다.
- 윤년 구하는 식 : (year / 4) - (year / 100) + (year / 400)
- 윤년일 때는 1일을 추가해야 한다
- 기준 날짜 (1970.1.1)를 정한 뒤, 기준 날짜부터 입력한 년도와 월까지 전체 날짜의 수를 구한다.
- 1970.1.1의 요일은 목요일이기 때문에 STANDARD_WEEKDAY = 4로 설정한다.
- 1970년부터 입력한 년도까지 반복문을 실행하며 윤년이면 366일 평년이면 365일을 count에 더한다.
- 년도의 합이 끝나면 1월부터 입력한 월까지 반복문을 실행하며 더한다.
- 구한 전체 날짜에 STANDARD_WEEKDAY를 더하고 7로 나눠서 나머지가 0 = Sun, 1 = Mon,..., 6 = Sat이라는 것을 이용한다.
주의사항
- 입력받은 년도와 월에 -1을 해야 한다. 왜냐하면 2019년 7월을 입력하는 건 2019년 7월 달력을 보고 싶기 때문이다.
- 하지만 2019년 7월을 입력하면 2020년 7월까지 날짜를 계산하기 때문에 리턴 값은 2020년 8월의 첫 번째 요일이 된다.
'프로그래밍 > Java' 카테고리의 다른 글
19.12.19) Java - 기본 자료형과 객체 자료형 (0) | 2019.12.20 |
---|---|
19.12.19) Java - 변수와 메서드 (0) | 2019.12.20 |
19.12.18) Java - 변수, 자료형, 선언 (0) | 2019.12.19 |
19.12.17) Java - 구동 방식 (0) | 2019.12.17 |
19.12.17) Java - Calendar 프로젝트2 (0) | 2019.12.17 |