무슨 말인가 하면...학교나 회계처리 등을 보면 1년을 1월1일부터 12월 31일까지가 아닌 특정 기간을 정해서 년도계산을 하기도 한다.
일본의 학교는 보통 4월 1일부터 신학기가 시작된다.
즉, 2017년을 기준으로 보면 2017년 1월 1일은 2016학년도가 되고, 4027년 4월 1일이 되야 2017학년도가 된다.
요걸 어찌 처리할까 고민하다가 어찌 해결했다..방법은 기준점을 두고 오늘 날짜를 불러와서 diff로 날짜를 빼버리면 값이 떨어지는데 그 값이 마이너스인 경우에는 아직 학년도가 시작되지 않았다는 것이므로 (기준이 4월 1일이므로 1월1일부터 3월31일까지는 마이너스가 된다.) 현재 년도에서 -1을 한 값을 학년도로 사용한다. 4월 1일인 경우에는 차이가 0이 되므로 그 이후 값은 그대로 년도를 학년도로 사용해도 문제가 없다...예전에 유메쵸 만들 때 이 이슈가 있었지...그걸 내가 실제 코딩을 하게 될 줄은..ㅎㅎ
> calYear.php
|
$startDay = '04-01';
$todayDate = new DateTime();
$theDate = new DateTime($todayDate->format('Y-m-d'));
$diff = (new DateTime($theDate->format('Y') . '-' . $startDay))->diff($theDate);
if ( $diff->invert ) // 引き算の結果がマイナスだった場合にはまだ学年度が更新されてない1-3月ということ
{
$curYear = intval($theDate->format('Y')) - 1;
} else { // そのまま
$curYear = intval($theDate->format('Y'));
}
|
댓글
댓글 쓰기