{"id":3307,"date":"2019-03-28T03:12:10","date_gmt":"2019-03-27T18:12:10","guid":{"rendered":"https:\/\/blog.capilano-fw.com\/?p=3307"},"modified":"2019-04-01T16:06:48","modified_gmt":"2019-04-01T07:06:48","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91%e6%96%b0%e5%85%83%e5%8f%b7%e3%81%ab%e5%af%be%e5%bf%9c%ef%bc%81%e5%92%8c%e6%9a%a6%e2%86%94%e8%a5%bf%e6%9a%a6%e5%a4%89%e6%8f%9b%e3%82%92php%e3%80%81javascri","status":"publish","type":"post","link":"https:\/\/blog.capilano-fw.com\/?p=3307","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011\u4ee4\u548c\u306b\u5bfe\u5fdc\uff01\u548c\u66a6\u2194\u897f\u66a6\u5909\u63db\u3092PHP\u3001JavaScript\u3001Python\u3067\u5b9f\u884c\u3059\u308b\u65b9\u6cd5"},"content":{"rendered":"<p>\u3055\u3066\u3055\u3066\u3001\u65e9\u3044\u3082\u306e\u3067\u4eca\u5e74\u3082\u304a\u6b63\u6708\u3092\u8fce\u3048\u3066\u304b\u3089\u65e9\uff13\u30f5\u6708\u304c\u904e\u304e\u3066\u3057\u307e\u3063\u305f\u306a\u301c\u306a\u3093\u3066\u8003\u3048\u3066\u3044\u305f\u3089\u3001\u3082\u3063\u3068\u5927\u304d\u306a\u7bc0\u76ee\u3067\u3042\u308b\u300c\u65b0\u5143\u53f7\u306e\u958b\u59cb\u300d\u307e\u3067\u3042\u3068\uff11\u30f5\u6708\u306b\u306a\u3063\u3066\u3044\u3066\u30db\u30f3\u30c8\u306b\u6642\u9593\u304c\u3059\u304e\u308b\u306e\u306f\u65e9\u3044\u306a\u3068\u611f\u3058\u308b\u4eca\u65e5\u3053\u306e\u9803\u3067\u3059\u3002<\/p>\n<p>\u3057\u304b\u3082\u3001\u6211\u3005\u30b7\u30b9\u30c6\u30e0\u95a2\u9023\u306e\u304a\u4ed5\u4e8b\u3092\u3057\u3066\u3044\u308b\u4eba\u9593\u306b\u3068\u3063\u3066\u306f\u5143\u53f7\u304c\u5909\u308f\u308b\u7bc0\u76ee\u3088\u308a\uff11\u30f5\u6708\u524d\u3001\u3064\u307e\u308a\u65b0\u5143\u53f7\u306e\u767a\u8868\u3068\u3044\u3046\u4e00\u5927\u30a4\u30d9\u30f3\u30c8\u306f\u3082\u3046\u3059\u3050\u305d\u3053\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u4eca\u56de\u306f\u305d\u3093\u306a\u65b0\u5143\u53f7\u306e\u767a\u8868\u3092\u5148\u53d6\u308a\u3057\u3066\u300c\u548c\u66a6\u2192\u897f\u66a6\u300d\u300c\u897f\u66a6\u2190\u548c\u66a6\u300d\u306e\u5909\u63db\u3092\u4ee5\u4e0b\uff13\u3064\u306e\u8a00\u8a9e\u3067\u5b9f\u73fe\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d39\u4ecb\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<ul>\n<li><strong>PHP<\/strong><\/li>\n<li><strong>JavaScript\uff08Node.js\uff09<\/strong><\/li>\n<li><strong>Python\uff08ver 2 &amp; 3\uff09<\/strong><\/li>\n<\/ul>\n<p>\u305c\u3072\u307f\u306a\u3055\u3093\u306e\u6b8b\u696d\u304c\u6e1b\u308c\u3070\u5b09\u3057\u3044\u3067\u3059\uff08\u7b11\uff09<\/p>\n<p>\u203b\u3054\u6ce8\u610f\uff1a \u3053\u306e\u8a18\u4e8b\u306f\u65b0\u5143\u53f7\u767a\u8868\u306e\u524d\u306b\u57f7\u7b46\u3055\u308c\u305f\u3082\u306e\u3067\u3059\u3002<s>\u305d\u306e\u305f\u3081\u3001\u767a\u8868\u304c\u3042\u3063\u3066\u304b\u3089\u8a18\u4e8b\u5185\u306e\u300c\u65b0\u5143\u53f7\u300d\u3068\u3044\u3046\u90e8\u5206\u3092\u5909\u66f4\u3057\u307e\u3059\u3002<\/s> \u300c\u4ee4\u548c\u300d\u3078\u5909\u66f4\u3057\u307e\u3057\u305f\uff01<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1785 aligncenter\" src=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2018\/10\/15-2.png\" alt=\"\" width=\"226\" height=\"320\" srcset=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2018\/10\/15-2.png 226w, https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2018\/10\/15-2-212x300.png 212w\" sizes=\"auto, (max-width: 226px) 100vw, 226px\" \/><\/p>\n<h1>PHP\u3067\u548c\u66a6 \u2194 \u897f\u66a6<\/h1>\n<h2>PHP\u3067\u897f\u66a6 \u2192 \u548c\u66a6<\/h2>\n<pre>\/\/ \u897f\u66a6 =&gt; \u548c\u66a6\r\nfunction wareki($year) {\r\n\r\n    $eras = [\r\n        ['year' =&gt; 2018, 'name' =&gt; '\u4ee4\u548c'],\r\n        ['year' =&gt; 1988, 'name' =&gt; '\u5e73\u6210'],\r\n        ['year' =&gt; 1925, 'name' =&gt; '\u662d\u548c'],\r\n        ['year' =&gt; 1911, 'name' =&gt; '\u5927\u6b63'],\r\n        ['year' =&gt; 1867, 'name' =&gt; '\u660e\u6cbb']\r\n    ];\r\n\r\n    foreach($eras as $era) {\r\n\r\n        $base_year = $era['year'];\r\n        $era_name = $era['name'];\r\n\r\n        if($year &gt; $base_year) {\r\n\r\n            $era_year = $year - $base_year;\r\n\r\n            if($era_year === 1) {\r\n\r\n                return $era_name .'\u5143\u5e74';\r\n\r\n            }\r\n\r\n            return $era_name . $era_year .'\u5e74';\r\n\r\n        }\r\n\r\n    }\r\n\r\n    return null;\r\n\r\n}\r\n\r\necho wareki(2000); \/\/ \u5e73\u621012\u5e74<\/pre>\n<h2>PHP\u3067\u548c\u66a6 \u2192 \u897f\u66a6<\/h2>\n<pre>\/\/ \u548c\u66a6 =&gt; \u897f\u66a6\r\nfunction seireki($wareki_year) {\r\n\r\n    $wareki_year = str_replace('\u5143\u5e74', '1\u5e74', mb_convert_kana($wareki_year, 'n'));\r\n\r\n    if(preg_match('!^(\u660e\u6cbb|\u5927\u6b63|\u662d\u548c|\u5e73\u6210|\u4ee4\u548c)([0-9]+)\u5e74$!', $wareki_year, $matches)) {\r\n\r\n        $era_name = $matches[1];\r\n        $year = intval($matches[2]);\r\n\r\n        if($era_name === '\u660e\u6cbb') {\r\n\r\n            $year += 1867;\r\n\r\n        } else if($era_name === '\u5927\u6b63') {\r\n\r\n            $year += 1911;\r\n\r\n        } else if($era_name === '\u662d\u548c') {\r\n\r\n            $year += 1925;\r\n\r\n        } else if($era_name === '\u5e73\u6210') {\r\n\r\n            $year += 1988;\r\n\r\n        } else if($era_name === '\u4ee4\u548c') {\r\n\r\n            $year += 2018;\r\n\r\n        }\r\n\r\n        return $year .'\u5e74';\r\n\r\n    }\r\n\r\n    return null;\r\n\r\n}\r\n\r\necho seireki('\u5e73\u6210\u5143\u5e74'); \/\/ 1989\u5e74<\/pre>\n<h1>JavaScript\uff08Node.js\uff09\u3067\u548c\u66a6 \u2194 \u897f\u66a6<\/h1>\n<h2>JavaScript\uff08Node.js\uff09\u3067\u897f\u66a6 \u2192 \u548c\u66a6<\/h2>\n<pre>\/\/ \u897f\u66a6 =&gt; \u548c\u66a6\r\nfunction wareki(year) {\r\n\r\n    var eras = [\r\n        {year: 2018, name: '\u4ee4\u548c'},\r\n        {year: 1988, name: '\u5e73\u6210'},\r\n        {year: 1925, name: '\u662d\u548c'},\r\n        {year: 1911, name: '\u5927\u6b63'},\r\n        {year: 1867, name: '\u660e\u6cbb'}\r\n    ];\r\n\r\n    for(var i in eras) {\r\n\r\n        var era = eras[i];\r\n        var baseYear = era.year;\r\n        var eraName = era.name;\r\n\r\n        if(year &gt; baseYear) {\r\n\r\n            var eraYear = year - baseYear;\r\n\r\n            if(eraYear === 1) {\r\n\r\n                return eraName +'\u5143\u5e74';\r\n\r\n            }\r\n\r\n            return eraName + eraYear +'\u5e74';\r\n\r\n        }\r\n\r\n    }\r\n\r\n    return null;\r\n\r\n}\r\n\r\nconsole.log(wareki(2000)); \/\/ \u5e73\u621012\u5e74<\/pre>\n<h2>JavaScript\uff08Node.js\uff09\u3067\u548c\u66a6 \u2192 \u897f\u66a6<\/h2>\n<pre>\/\/ \u548c\u66a6 =&gt; \u897f\u66a6\r\nfunction seireki(warekiYear) {\r\n\r\n    var matches = warekiYear.match('^(\u660e\u6cbb|\u5927\u6b63|\u662d\u548c|\u5e73\u6210|\u4ee4\u548c)([\u51430-9\uff10-\uff19]+)\u5e74$');\r\n\r\n    if(matches) {\r\n\r\n        var eraName = matches[1];\r\n        var year = parseInt(matches[2].replace(\/[\u5143\uff10-\uff19]\/g, function(match){\r\n\r\n            if(match === '\u5143') {\r\n\r\n                return 1;\r\n\r\n            }\r\n\r\n            return String.fromCharCode(match.charCodeAt(0) - 65248);\r\n\r\n        }));\r\n\r\n        if(eraName === '\u660e\u6cbb') {\r\n\r\n            year += 1867;\r\n\r\n        } else if(eraName === '\u5927\u6b63') {\r\n\r\n            year += 1911;\r\n\r\n        } else if(eraName === '\u662d\u548c') {\r\n\r\n            year += 1925;\r\n\r\n        } else if(eraName === '\u5e73\u6210') {\r\n\r\n            year += 1988;\r\n\r\n        } else if(eraName === '\u4ee4\u548c') {\r\n\r\n            year += 2018;\r\n\r\n        }\r\n\r\n        return year +'\u5e74';\r\n\r\n    }\r\n\r\n    return null;\r\n\r\n}\r\n\r\nconsole.log(seireki('\u5e73\u6210\u5143\u5e74')); \/\/ 1989\u5e74<\/pre>\n<h1>Python\uff08ver 2 &amp; 3\uff09\u3067\u548c\u66a6 \u2194 \u897f\u66a6<\/h1>\n<h2>Python\uff08ver 2 &amp; 3\uff09\u3067\u897f\u66a6 \u2192 \u548c\u66a6<\/h2>\n<pre># coding: utf-8\r\n\r\n# \u897f\u66a6 =&gt; \u548c\u66a6\r\ndef wareki(year):\r\n\r\n    eras = [\r\n        {'year': 2018, 'name': '\u4ee4\u548c'},\r\n        {'year': 1988, 'name': '\u5e73\u6210'},\r\n        {'year': 1925, 'name': '\u662d\u548c'},\r\n        {'year': 1911, 'name': '\u5927\u6b63'},\r\n        {'year': 1867, 'name': '\u660e\u6cbb'}\r\n    ]\r\n\r\n    for era in eras:\r\n\r\n        baseYear = era['year'];\r\n        era_name = era['name'];\r\n\r\n        if year &gt; baseYear:\r\n\r\n            eraYear = year - baseYear;\r\n\r\n            if eraYear == 1:\r\n                return era_name +'\u5143\u5e74';\r\n\r\n            return era_name + str(eraYear) +'\u5e74';\r\n\r\n    return null;\r\n\r\nprint(wareki(2000)) # \u5e73\u621012\u5e74<\/pre>\n<h2>Python\uff08ver 2 &amp; 3\uff09\u3067\u548c\u66a6 \u2192 \u897f\u66a6<\/h2>\n<p><strong>\u3054\u6ce8\u610f\uff1a <\/strong><\/p>\n<p>\u5168\u89d2\u6570\u5b57\u304c\u5165\u3063\u3066\u304f\u308b\u3053\u3068\u3082\u60f3\u5b9a\u3057\u3066\u3044\u308b\u305f\u3081<code>jaconv<\/code>\u3092\u4f7f\u3063\u3066\u5168\u89d2\u6570\u5b57 \u2192 \u534a\u89d2\u6570\u5b57\u3078\u5909\u63db\u3059\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u8ffd\u52a0\u3057\u3066\u3044\u307e\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3067\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304b\u3089\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p><code>pip install jaconv<\/code><\/p>\n<p>\u307e\u305f\u3001\u3053\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306f<code>Python 2<\/code>\u3001<code>Python 3<\/code>\u3069\u3061\u3089\u3067\u3082\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre># coding: utf-8\r\n\r\nimport re\r\nimport jaconv\r\nimport sys\r\n\r\n# \u548c\u66a6 =&gt; \u897f\u66a6\r\ndef seireki(warekiYear):\r\n\r\n    pattern = re.compile('^(\u660e\u6cbb|\u5927\u6b63|\u662d\u548c|\u5e73\u6210|\u4ee4\u548c)([\u51430-9\uff10-\uff19]+)\u5e74$')\r\n    matches = pattern.match(warekiYear);\r\n\r\n    if matches:\r\n\r\n        era_name = matches.group(1)\r\n        year = matches.group(2);\r\n\r\n        if year == '\u5143':\r\n            year = 1\r\n        else:\r\n            if sys.version_info &lt; (3, 0):\r\n                year = year.decode('utf-8')\r\n            year = int(jaconv.z2h(year, digit=True))\r\n\r\n        if era_name == '\u660e\u6cbb':\r\n            year += 1867\r\n        elif era_name == '\u5927\u6b63':\r\n            year += 1911\r\n        elif era_name == '\u662d\u548c':\r\n            year += 1925\r\n        elif era_name == '\u5e73\u6210':\r\n            year += 1988\r\n        elif era_name == '\u4ee4\u548c':\r\n            year += 2018\r\n\r\n        return str(year) +'\u5e74'\r\n\r\n    return null;\r\n\r\nprint(seireki('\u5e73\u6210\u5143\u5e74')) # 1989\u5e74<\/pre>\n<h1>\u3061\u306a\u307f\u306b<\/h1>\n<p>\u79c1\u306f\u6570\u5e74\u524d\u304b\u3089 <a href=\"https:\/\/github.com\/SUKOHI\/Wafu\" target=\"_blank\" rel=\"noopener noreferrer\">Wafu<\/a> \u3068\u3044\u3046\u300c\u65e5\u672c\u306b\u95a2\u9023\u3059\u308b\u30c7\u30fc\u30bf\u53d6\u5f97\u3001\u5909\u63db\u300dPHP\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u516c\u958b\u3057\u3066\u3044\u308b\u306e\u3067\u3059\u304c\u3001\u3053\u306e\u4e2d\u3067\u3082\u548c\u66a6\u3068\u897f\u66a6\u306e\u5909\u66f4\u3092\u3059\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u7528\u610f\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u3082\u3061\u308d\u3093\u65b0\u5143\u53f7\u304c\u767a\u8868\u3055\u308c\u305f\u3089\u3059\u3050\u306b\u3053\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3082\u66f4\u65b0\u3057\u307e\u3059\u306e\u3067\u3001\u5b89\u5fc3\u3057\u3066\u4f7f\u3063\u3066\u304f\u3060\u3055\u3044\u3002\uff08\u3061\u3087\u3063\u3068\u3057\u305f\u5ba3\u4f1d\u3067\u3057\u305f ^^\uff09<\/p>\n<p>\u3068\u3044\u3046\u3053\u3068\u3067\u3001\u4eca\u56de\u306f\u548c\u66a6\u3068\u897f\u66a6\u306e\u5909\u63db\u306b\u95a2\u3059\u308b\u8a71\u984c\u3067\u3057\u305f\u3002<br \/>\n\u3044\u3064\u3067\u3082\u4f7f\u3048\u308b\u3088\u3046\u306b\u3001\u305c\u3072\u30d6\u30c3\u30af\u30de\u30fc\u30af\u3057\u3066\u304a\u3044\u3066\u304f\u3060\u3055\u3044\u306d\u3002<\/p>\n<p>\u3067\u306f\u3067\u306f\u301c\uff01<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2158 aligncenter\" src=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2018\/11\/29.png\" alt=\"\" width=\"170\" height=\"320\" srcset=\"https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2018\/11\/29.png 170w, https:\/\/blog.capilano-fw.com\/wp-content\/uploads\/2018\/11\/29-159x300.png 159w\" sizes=\"auto, (max-width: 170px) 100vw, 170px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3055\u3066\u3055\u3066\u3001\u65e9\u3044\u3082\u306e\u3067\u4eca\u5e74\u3082\u304a\u6b63\u6708\u3092\u8fce\u3048\u3066\u304b\u3089\u65e9\uff13\u30f5\u6708\u304c\u904e\u304e\u3066\u3057\u307e\u3063\u305f\u306a\u301c\u306a\u3093\u3066\u8003\u3048\u3066\u3044\u305f\u3089\u3001\u3082\u3063\u3068\u5927\u304d\u306a\u7bc0\u76ee\u3067\u3042\u308b\u300c\u65b0\u5143\u53f7\u306e\u958b\u59cb\u300d\u307e\u3067\u3042\u3068\uff11\u30f5\u6708\u306b\u306a\u3063\u3066\u3044\u3066\u30db\u30f3 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.capilano-fw.com\/?p=3307\" class=\"more-link\"><span class=\"screen-reader-text\">&#8220;\u3010\u4fdd\u5b58\u7248\u3011\u4ee4\u548c\u306b\u5bfe\u5fdc\uff01\u548c\u66a6\u2194\u897f\u66a6\u5909\u63db\u3092PHP\u3001JavaScript\u3001Python\u3067\u5b9f\u884c\u3059\u308b\u65b9\u6cd5&#8221; \u306e<\/span>\u7d9a\u304d\u3092\u8aad\u3080<\/a><\/p>\n","protected":false},"author":1,"featured_media":3316,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,10,39],"tags":[102,133],"class_list":["post-3307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","category-php","category-python","tag-102","tag-133"],"_links":{"self":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts\/3307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3307"}],"version-history":[{"count":18,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts\/3307\/revisions"}],"predecessor-version":[{"id":3342,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/posts\/3307\/revisions\/3342"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=\/wp\/v2\/media\/3316"}],"wp:attachment":[{"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.capilano-fw.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}