2018년 5월 14일 월요일

[PHP예제] 074 서기를 단기로 표현하고 싶을 때




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>서기를 단기로 표현하고 싶을 때</title>
    <link href="style.css" rel="stylesheet">
</head>
<body>
<div>
<?php
date_default_timezone_set('Asia/Seoul');

$year = 2018;
$month = 5;
$day = 16;

echo "<p>서기:" . $year . "/" . $month . "/" . $day . "</p>";
$ret = toOdKoreanDate($year, $month, $day);
if( $ret !== false )
{
  echo "<p>단기: " . $ret . "</p>";
}
else
{
  echo "<p>잘못된 년 월 일입니다.</p>";
}

// toOdKoreanDate() 함수
// 서기를 단기로 변환함. 단 이 함수는 기원 전의 날짜를 변환할 수 없음
// 인수에는 서기의 년, 월, 일을 지정함
function toOdKoreanDate($year, $month, $day)
{
  // 잘못된 년월일, 1872년 이전이 지정된 경우 false를 되돌림
  if( !checkdate($month, $day, $year) || $year < 1 )
  {
    return false;
  }

  // 서기를 YYYYMMDD 형식의 숫자로 변환함
  $date = (int) sprintf('%04d%02d%02d', $year, $month, $day);

  // 날짜 숫자에서 연호와 단기를 구함
  if( $date >= 00010101 )
  {
    // 1년 1월 1일부터
    $localYear = $year + 2333;
  }

  // o년 o월 o일과 같이 서식을 조정함
  $wareki = $localYear . '년';

  return $wareki . $month . '월' . $day . '일';
}
?>
</div>
</body>
</html>


댓글 없음:

댓글 쓰기