| 봄(Spring), 여름(Summer), 가을(Autumn), 겨울(Winter) 계절 구하기 |
|
|
 |
16년 전 |
봄(Spring) 여름(Summer) 가을(Autumn) 겨울(Winter) 계절 구하기
대충 봄은 3월, 4월, 5월.
여름은 6월, 7월, 8월.
가을은 9월, 10월, 11월.
겨울은 12월, 1월, 2월로 계절을 나누고 있습니다.
각 달이 어느 계절에 속했는지 구하는 방법을 알아볼까요?
지정한 달을 12로 나눈 나머지를 구합니다. 12가 0이 되었죠?
1월 %12 = 1
2월 %12 = 2
3월 %12 = 3
4월 %12 = 4
5월 %12 = 5
6월 %12 = 6
7월 %12 = 7
8월 %12 = 8
9월 %12 = 9
10월 %12 = 10
11월 %12 = 11
12월 %12 = 0
이제 나머지값을 3으로 나누고 소수 이하는 버립니다.
0 / 3 = 0.000000 = 0
1 / 3 = 0.333333 = 0
2 / 3 = 0.666667 = 0
3 / 3 = 1.000000 = 1
4 / 3 = 1.333333 = 1
5 / 3 = 1.666667 = 1
6 / 3 = 2.000000 = 2
7 / 3 = 2.333333 = 2
8 / 3 = 2.666667 = 2
9 / 3 = 3.000000 = 3
10 / 3 = 3.333333 = 3
11 / 3 = 3.666667 = 3
0부터 3까지의 값으로 정리되는군요. 이 값이 곧 계절값입니다.
0은 겨울
1은 봄
2는 여름
3은 가을
PHP 코드로 볼까요?
$month = 3;
$season = array('겨울','봄','여름','가을');
$where = (int)$month%12/3; // 1
echo $season[$where]; // "봄" 출력
계절 구하는 부분을 응용 차원에서 한 줄로 해볼까요?
$월 = 7;
$계절 = reset(array_slice(array('겨울','봄','여름','가을'),(int)$월%12/3));
echo $계절; // "여름" 출력
복잡해 보이나요? 설명 추가합니다.
array_slice()는 substr() 함수와 비슷합니다.
시작위치와 크기를 지정해 그 값을 가져올 수 있지요.
echo substr('BiHon & M2',0,5); // "BiHon" 출력
$계절 = array('겨울','봄','여름','가을');
$예1 = array_slice($계절,0,1); // 겨울
$예2 = array_slice($계절,2,1); // 여름
$예3 = array_slice($계절,2,2); // 여름, 가을
$예4 = array_slice($계절,-1); // 가을
$예5 = array_slice($계절,1,-1); // 봄, 여름
예를 보면 알 수 있겠죠? ^^);
월 값을 가공 0~3까지의 값을 구해 그 위치부터의 배열을 구합니다.
이때 배열 형태라 처음 값을 reset()을 이용해 꺼내줍니다.
reset() = http://php.net/manual/kr/function.reset.php
어때요? 간단하죠?
그러면 date() 함수를 이용해 현 시점의 계절을 알아볼까요?
echo reset(array_slice(array('겨울','봄','여름','가을'),(int)date('n')%12/3)); // "겨울" 출력
문자열 함수를 이용. 효율적인 면에서 제일 빠릅니다.
echo substr('WinterSpringSummerAutumn',(int)(date('n')%12/3)*6,6); // "Winter" 출력 |
|
추천 : 441 |
추천
목록
|
|