{"id":161,"date":"2025-06-02T22:46:13","date_gmt":"2025-06-02T13:46:13","guid":{"rendered":"https:\/\/luck.buynari.net\/?page_id=161"},"modified":"2025-06-04T22:05:24","modified_gmt":"2025-06-04T13:05:24","slug":"%e5%a4%a9%e4%b8%ad%e6%ae%ba%e3%82%a2%e3%83%97%e3%83%aa","status":"publish","type":"page","link":"https:\/\/luck.buynari.net\/?page_id=161","title":{"rendered":"\u5929\u4e2d\u6bba\u30a2\u30d7\u30ea"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<!DOCTYPE html>\n<html lang=\"ja\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>\u5929\u4e2d\u6bba\u30c1\u30a7\u30c3\u30ab\u30fc<\/title>\n    <style>\n        body { font-family: sans-serif; margin: 20px; }\n        .container { max-width: 450px; margin: auto; padding: 20px; border: 1px solid #ccc; border-radius: 8px; }\n        label { display: block; margin-bottom: 5px; }\n        input[type=\"date\"], button { width: calc(100% - 22px); padding: 10px; margin-bottom: 15px; border-radius: 4px; border: 1px solid #ccc; box-sizing: border-box; }\n        button { background-color: #4CAF50; color: white; cursor: pointer; font-size: 16px; }\n        button:hover { background-color: #45a049; }\n        #result, #details { margin-top: 20px; padding: 10px; background-color: #f0f0f0; border-radius: 4px; }\n        #result strong { color: #d9534f; }\n        .error { color: red; font-weight: bold;}\n    <\/style>\n<\/head>\n<body>\n    <div class=\"container\">\n        <h1>\u5929\u4e2d\u6bba\u30c1\u30a7\u30c3\u30ab\u30fc<\/h1>\n        <label for=\"birthdate\">\u751f\u5e74\u6708\u65e5:<\/label>\n        <input type=\"date\" id=\"birthdate\" name=\"birthdate\">\n        <button onclick=\"displayMyTenchusatsu()\">\u3042\u306a\u305f\u306e\u5929\u4e2d\u6bba\u3092\u8abf\u3079\u308b<\/button>\n        <div id=\"result\"><\/div>\n        <div id=\"details\" style=\"font-size:0.9em; color: #333; margin-top:10px; padding-top:10px; border-top:1px dashed #ccc;\"><\/div>\n    <\/div>\n\n    <script>\n        \/\/ T4:U304 (\u5e74\u3054\u3068\u306e\u7bc0\u5165\u308a\u65e5\u30c7\u30fc\u30bf)\n        const setsuriData = {\n          1900: \"646566888987\", 1901: \"646566888988\", 1902: \"656667888988\", 1903: \"657677899988\",\n          1904: \"756566788987\", 1905: \"646566888988\", 1906: \"656667888988\", 1907: \"657677899988\",\n          1908: \"756566788987\", 1909: \"646566888988\", 1910: \"656666888988\", 1911: \"657677899988\",\n          1912: \"756566788987\", 1913: \"646566888988\", 1914: \"656666888988\", 1915: \"657677899988\",\n          1916: \"756566788987\", 1917: \"646566888988\", 1918: \"646566888988\", 1919: \"657667889988\",\n          1920: \"656566788887\", 1921: \"646566888988\", 1922: \"646566888988\", 1923: \"656667889988\",\n          1924: \"656566788887\", 1925: \"646566888987\", 1926: \"646566888988\", 1927: \"656667889988\",\n          1928: \"656566788887\", 1929: \"646566888987\", 1930: \"646566888988\", 1931: \"656667889988\",\n          1932: \"656566788877\", 1933: \"646566788987\", 1934: \"646566888988\", 1935: \"656667888988\",\n          1936: \"656566788877\", 1937: \"646566788987\", 1938: \"646566888988\", 1939: \"656666888988\",\n          1940: \"656566788877\", 1941: \"646566788987\", 1942: \"646566888988\", 1943: \"656666888988\",\n          1944: \"656566788877\", 1945: \"646566788987\", 1946: \"646566888988\", 1947: \"656666888988\",\n          1948: \"656556788877\", 1949: \"646566788987\", 1950: \"646566888988\", 1951: \"656566888988\",\n          1952: \"656556778877\", 1953: \"646566788887\", 1954: \"646566888988\", 1955: \"646566888988\",\n          1956: \"655556778877\", 1957: \"546566788887\", 1958: \"646566888987\", 1959: \"646566888988\",\n          1960: \"655556778877\", 1961: \"546566788887\", 1962: \"646566788987\", 1963: \"646566888988\",\n          1964: \"655556778877\", 1965: \"546566788887\", 1966: \"646566788987\", 1967: \"646566888988\",\n          1968: \"655556777877\", 1969: \"546566788877\", 1970: \"646566788987\", 1971: \"646566888988\",\n          1972: \"655555777877\", 1973: \"546566788877\", 1974: \"646566788987\", 1975: \"646566888988\",\n          1976: \"655555777877\", 1977: \"546566788877\", 1978: \"646566788987\", 1979: \"646566888988\",\n          1980: \"655555777877\", 1981: \"546556778877\", 1982: \"646566788987\", 1983: \"646566888988\",\n          1984: \"655455777877\", 1985: \"546556778877\", 1986: \"646566788887\", 1987: \"646566888988\",\n          1988: \"645455777877\", 1989: \"545556778877\", 1990: \"546566788887\", 1991: \"646566788987\",\n          1992: \"645455777877\", 1993: \"545556778877\", 1994: \"546566788887\", 1995: \"646566788987\",\n          1996: \"645455777877\", 1997: \"545556777877\", 1998: \"546566788887\", 1999: \"646566788987\",\n          2000: \"645455777877\", 2001: \"545555777877\", 2002: \"546566788877\", 2003: \"646566788987\",\n          2004: \"645455777877\", 2005: \"545555777877\", 2006: \"546566788877\", 2007: \"646566788987\",\n          2008: \"645455777877\", 2009: \"545555777877\", 2010: \"546556778877\", 2011: \"646566788987\",\n          2012: \"645455777877\", 2013: \"545555777877\", 2014: \"546556778877\", 2015: \"646566788887\",\n          2016: \"645455777877\", 2017: \"545455777877\", 2018: \"546556778877\", 2019: \"646566788887\",\n          2020: \"645455777877\", 2021: \"535455777877\", 2022: \"545556778877\", 2023: \"646566788887\",\n          2024: \"645455677877\", 2025: \"535455777877\", 2026: \"545556777877\", 2027: \"546566788887\",\n          2028: \"645455677876\", 2029: \"535455777877\", 2030: \"545555777877\", 2031: \"546566788887\",\n          2032: \"645455677876\", 2033: \"535455777877\", 2034: \"545555777877\", 2035: \"546566788877\",\n          2036: \"645455677876\", 2037: \"535455777877\", 2038: \"545555777877\", 2039: \"546566788877\",\n          2040: \"645455677876\", 2041: \"535455777877\", 2042: \"545555777877\", 2043: \"546556778877\",\n          2044: \"645455677876\", 2045: \"535455777877\", 2046: \"545455777877\", 2047: \"546556778877\",\n          2048: \"645455677776\", 2049: \"535455777877\", 2050: \"545455777877\", 2051: \"546556778877\",\n          2052: \"645455677776\", 2053: \"535455677877\", 2054: \"545455777877\", 2055: \"545556778877\",\n          2056: \"645455677776\", 2057: \"535455677877\", 2058: \"535455777877\", 2059: \"545556777877\",\n          2060: \"545455677776\", 2061: \"535455677876\", 2062: \"535455777877\", 2063: \"545555777877\",\n          2064: \"545455677776\", 2065: \"535455677876\", 2066: \"535455777877\", 2067: \"545555777877\",\n          2068: \"545455677766\", 2069: \"535455677876\", 2070: \"535455777877\", 2071: \"545555777877\",\n          2072: \"545445667766\", 2073: \"535455677876\", 2074: \"535455777877\", 2075: \"545555777877\",\n          2076: \"545445667766\", 2077: \"535455677876\", 2078: \"535455777877\", 2079: \"545455777877\",\n          2080: \"545445667766\", 2081: \"535455677776\", 2082: \"535455677877\", 2083: \"545455777877\",\n          2084: \"545445667766\", 2085: \"535455677776\", 2086: \"535455677877\", 2087: \"545455777877\",\n          2088: \"544445666766\", 2089: \"535455677776\", 2090: \"535455677877\", 2091: \"535455777877\",\n          2092: \"544444666766\", 2093: \"435455677776\", 2094: \"535455677877\", 2095: \"535455777877\",\n          2096: \"544444666766\", 2097: \"435455677776\", 2098: \"535455677876\", 2099: \"535455777877\",\n          2100: \"546556778877\", 2101: \"546556778877\", 2102: \"546556778877\", 2103: \"646566788887\",\n          2104: \"546556778877\", 2105: \"546556778877\", 2106: \"546556778877\", 2107: \"646566788887\",\n          2108: \"546556778877\", 2109: \"546556778877\", 2110: \"546556778877\", 2111: \"646566788887\",\n          2112: \"546556778877\", 2113: \"546556778877\", 2114: \"546556778877\", 2115: \"646566788887\",\n          2116: \"546556778877\", 2117: \"546556778877\", 2118: \"546556778877\", 2119: \"646566788887\",\n          2120: \"546556778877\", 2121: \"546556778877\", 2122: \"546556778877\", 2123: \"646566788887\",\n          2124: \"546556778877\", 2125: \"546556778877\", 2126: \"546556778877\", 2127: \"646566788887\",\n          2128: \"546556778877\", 2129: \"546556778877\", 2130: \"546556778877\", 2131: \"646566788887\",\n          2132: \"546556778877\", 2133: \"546556778877\", 2134: \"546556778877\", 2135: \"646566788887\",\n          2136: \"546556778877\", 2137: \"546556778877\", 2138: \"546556778877\", 2139: \"646566788887\",\n          2140: \"546556778877\", 2141: \"546556778877\", 2142: \"546556778877\", 2143: \"646566788887\",\n          2144: \"546556778877\", 2145: \"546556778877\", 2146: \"546556778877\", 2147: \"646566788887\",\n          2148: \"546556778877\", 2149: \"546556778877\", 2150: \"546556778877\", 2151: \"646566788887\",\n          2152: \"546556778877\", 2153: \"546556778877\", 2154: \"546556778877\", 2155: \"646566788887\",\n          2156: \"546556778877\", 2157: \"546556778877\", 2158: \"546556778877\", 2159: \"646566788887\",\n          2160: \"546556778877\", 2161: \"546556778877\", 2162: \"546556778877\", 2163: \"646566788887\",\n          2164: \"546556778877\", 2165: \"546556778877\", 2166: \"546556778877\", 2167: \"646566788887\",\n          2168: \"546556778877\", 2169: \"546556778877\", 2170: \"546556778877\", 2171: \"646566788887\",\n          2172: \"546556778877\", 2173: \"546556778877\", 2174: \"546556778877\", 2175: \"646566788887\",\n          2176: \"546556778877\", 2177: \"546556778877\", 2178: \"546556778877\", 2179: \"646566788887\",\n          2180: \"546556778877\", 2181: \"546556778877\", 2182: \"546556778877\", 2183: \"646566788887\",\n          2184: \"546556778877\", 2185: \"546556778877\", 2186: \"546556778877\", 2187: \"646566788887\",\n          2188: \"546556778877\", 2189: \"546556778877\", 2190: \"546556778877\", 2191: \"646566788887\",\n          2192: \"546556778877\", 2193: \"546556778877\", 2194: \"546556778877\", 2195: \"646566788887\",\n          2196: \"546556778877\", 2197: \"546556778877\", 2198: \"546556778877\", 2199: \"646566788887\",\n          2200: \"546556778877\"\n        };\n\n        \/\/ W4:AC63 (\u5341\u5e72\u5341\u4e8c\u652f\u3001\u7b97\u547d\u5b66\u70b9\u6570\u30c7\u30fc\u30bf)\n        const kanshiMasterTable = [\n          { W: 1,  X: \"\u7532\", Y: \"\",   Z: \"\",   AA: \"\u7678\", AB: \"\u5b50\", AC: 7 },\n          { W: 2,  X: \"\u4e59\", Y: \"\u7678\", Z: \"\u8f9b\", AA: \"\u5df1\", AB: \"\u4e11\", AC: 8 },\n          { W: 3,  X: \"\u4e19\", Y: \"\u620a\", Z: \"\u4e19\", AA: \"\u7532\", AB: \"\u5bc5\", AC: 9 },\n          { W: 4,  X: \"\u4e01\", Y: \"\",   Z: \"\",   AA: \"\u4e59\", AB: \"\u536f\", AC: 4 },\n          { W: 5,  X: \"\u620a\", Y: \"\u4e59\", Z: \"\u7678\", AA: \"\u620a\", AB: \"\u8fb0\", AC: 10 },\n          { W: 6,  X: \"\u5df1\", Y: \"\u620a\", Z: \"\u5e9a\", AA: \"\u4e19\", AB: \"\u5df3\", AC: 12 },\n          { W: 7,  X: \"\u5e9a\", Y: \"\",   Z: \"\u5df1\", AA: \"\u4e01\", AB: \"\u5348\", AC: 7 },\n          { W: 8,  X: \"\u8f9b\", Y: \"\u4e01\", Z: \"\u4e59\", AA: \"\u5df1\", AB: \"\u672a\", AC: 8 },\n          { W: 9,  X: \"\u58ec\", Y: \"\u620a\", Z: \"\u58ec\", AA: \"\u5e9a\", AB: \"\u7533\", AC: 9 },\n          { W: 10, X: \"\u7678\", Y: \"\",   Z: \"\",   AA: \"\u8f9b\", AB: \"\u9149\", AC: 4 },\n          { W: 11, X: \"\u7532\", Y: \"\u8f9b\", Z: \"\u4e01\", AA: \"\u620a\", AB: \"\u620c\", AC: 6 },\n          { W: 12, X: \"\u4e59\", Y: \"\",   Z: \"\u7532\", AA: \"\u58ec\", AB: \"\u4ea5\", AC: 2 },\n          { W: 13, X: \"\u4e19\", Y: \"\",   Z: \"\",   AA: \"\u7678\", AB: \"\u5b50\", AC: 3 },\n          { W: 14, X: \"\u4e01\", Y: \"\u7678\", Z: \"\u8f9b\", AA: \"\u5df1\", AB: \"\u4e11\", AC: 5 },\n          { W: 15, X: \"\u620a\", Y: \"\u620a\", Z: \"\u4e19\", AA: \"\u7532\", AB: \"\u5bc5\", AC: 9 },\n          { W: 16, X: \"\u5df1\", Y: \"\",   Z: \"\",   AA: \"\u4e59\", AB: \"\u536f\", AC: 4 },\n          { W: 17, X: \"\u5e9a\", Y: \"\u4e59\", Z: \"\u7678\", AA: \"\u620a\", AB: \"\u8fb0\", AC: 6 },\n          { W: 18, X: \"\u8f9b\", Y: \"\u620a\", Z: \"\u5e9a\", AA: \"\u4e19\", AB: \"\u5df3\", AC: 2 },\n          { W: 19, X: \"\u58ec\", Y: \"\",   Z: \"\u5df1\", AA: \"\u4e01\", AB: \"\u5348\", AC: 3 },\n          { W: 20, X: \"\u7678\", Y: \"\u4e01\", Z: \"\u4e59\", AA: \"\u5df1\", AB: \"\u672a\", AC: 5 },\n          { W: 21, X: \"\u7532\", Y: \"\u620a\", Z: \"\u58ec\", AA: \"\u5e9a\", AB: \"\u7533\", AC: 1 },\n          { W: 22, X: \"\u4e59\", Y: \"\",   Z: \"\",   AA: \"\u8f9b\", AB: \"\u9149\", AC: 1 },\n          { W: 23, X: \"\u4e19\", Y: \"\u8f9b\", Z: \"\u4e01\", AA: \"\u620a\", AB: \"\u620c\", AC: 5 },\n          { W: 24, X: \"\u4e01\", Y: \"\",   Z: \"\u7532\", AA: \"\u58ec\", AB: \"\u4ea5\", AC: 3 },\n          { W: 25, X: \"\u620a\", Y: \"\",   Z: \"\",   AA: \"\u7678\", AB: \"\u5b50\", AC: 3 },\n          { W: 26, X: \"\u5df1\", Y: \"\u7678\", Z: \"\u8f9b\", AA: \"\u5df1\", AB: \"\u4e11\", AC: 5 },\n          { W: 27, X: \"\u5e9a\", Y: \"\u620a\", Z: \"\u4e19\", AA: \"\u7532\", AB: \"\u5bc5\", AC: 1 },\n          { W: 28, X: \"\u8f9b\", Y: \"\",   Z: \"\",   AA: \"\u4e59\", AB: \"\u536f\", AC: 1 },\n          { W: 29, X: \"\u58ec\", Y: \"\u4e59\", Z: \"\u7678\", AA: \"\u620a\", AB: \"\u8fb0\", AC: 5 },\n          { W: 30, X: \"\u7678\", Y: \"\u620a\", Z: \"\u5e9a\", AA: \"\u4e19\", AB: \"\u5df3\", AC: 3 },\n          { W: 31, X: \"\u7532\", Y: \"\",   Z: \"\u5df1\", AA: \"\u4e01\", AB: \"\u5348\", AC: 2 },\n          { W: 32, X: \"\u4e59\", Y: \"\u4e01\", Z: \"\u4e59\", AA: \"\u5df1\", AB: \"\u672a\", AC: 6 },\n          { W: 33, X: \"\u4e19\", Y: \"\u620a\", Z: \"\u58ec\", AA: \"\u5e9a\", AB: \"\u7533\", AC: 4 },\n          { W: 34, X: \"\u4e01\", Y: \"\",   Z: \"\",   AA: \"\u8f9b\", AB: \"\u9149\", AC: 9 },\n          { W: 35, X: \"\u620a\", Y: \"\u8f9b\", Z: \"\u4e01\", AA: \"\u620a\", AB: \"\u620c\", AC: 5 },\n          { W: 36, X: \"\u5df1\", Y: \"\",   Z: \"\u7532\", AA: \"\u58ec\", AB: \"\u4ea5\", AC: 3 },\n          { W: 37, X: \"\u5e9a\", Y: \"\",   Z: \"\",   AA: \"\u7678\", AB: \"\u5b50\", AC: 2 },\n          { W: 38, X: \"\u8f9b\", Y: \"\u7678\", Z: \"\u8f9b\", AA: \"\u5df1\", AB: \"\u4e11\", AC: 6 },\n          { W: 39, X: \"\u58ec\", Y: \"\u620a\", Z: \"\u4e19\", AA: \"\u7532\", AB: \"\u5bc5\", AC: 4 },\n          { W: 40, X: \"\u7678\", Y: \"\",   Z: \"\",   AA: \"\u4e59\", AB: \"\u536f\", AC: 9 },\n          { W: 41, X: \"\u7532\", Y: \"\u4e59\", Z: \"\u7678\", AA: \"\u620a\", AB: \"\u8fb0\", AC: 8 },\n          { W: 42, X: \"\u4e59\", Y: \"\u620a\", Z: \"\u5e9a\", AA: \"\u4e19\", AB: \"\u5df3\", AC: 7 },\n          { W: 43, X: \"\u4e19\", Y: \"\",   Z: \"\u5df1\", AA: \"\u4e01\", AB: \"\u5348\", AC: 12 },\n          { W: 44, X: \"\u4e01\", Y: \"\u4e01\", Z: \"\u4e59\", AA: \"\u5df1\", AB: \"\u672a\", AC: 10 },\n          { W: 45, X: \"\u620a\", Y: \"\u620a\", Z: \"\u58ec\", AA: \"\u5e9a\", AB: \"\u7533\", AC: 4 },\n          { W: 46, X: \"\u5df1\", Y: \"\",   Z: \"\",   AA: \"\u8f9b\", AB: \"\u9149\", AC: 9 },\n          { W: 47, X: \"\u5e9a\", Y: \"\u8f9b\", Z: \"\u4e01\", AA: \"\u620a\", AB: \"\u620c\", AC: 8 },\n          { W: 48, X: \"\u8f9b\", Y: \"\",   Z: \"\u7532\", AA: \"\u58ec\", AB: \"\u4ea5\", AC: 7 },\n          { W: 49, X: \"\u58ec\", Y: \"\",   Z: \"\",   AA: \"\u7678\", AB: \"\u5b50\", AC: 12 },\n          { W: 50, X: \"\u7678\", Y: \"\u7678\", Z: \"\u8f9b\", AA: \"\u5df1\", AB: \"\u4e11\", AC: 10 },\n          { W: 51, X: \"\u7532\", Y: \"\u620a\", Z: \"\u4e19\", AA: \"\u7532\", AB: \"\u5bc5\", AC: 11 },\n          { W: 52, X: \"\u4e59\", Y: \"\",   Z: \"\",   AA: \"\u4e59\", AB: \"\u536f\", AC: 11 },\n          { W: 53, X: \"\u4e19\", Y: \"\u4e59\", Z: \"\u7678\", AA: \"\u620a\", AB: \"\u8fb0\", AC: 10 },\n          { W: 54, X: \"\u4e01\", Y: \"\u620a\", Z: \"\u5e9a\", AA: \"\u4e19\", AB: \"\u5df3\", AC: 12 },\n          { W: 55, X: \"\u620a\", Y: \"\",   Z: \"\u5df1\", AA: \"\u4e01\", AB: \"\u5348\", AC: 12 },\n          { W: 56, X: \"\u5df1\", Y: \"\u4e01\", Z: \"\u4e59\", AA: \"\u5df1\", AB: \"\u672a\", AC: 10 },\n          { W: 57, X: \"\u5e9a\", Y: \"\u620a\", Z: \"\u58ec\", AA: \"\u5e9a\", AB: \"\u7533\", AC: 11 },\n          { W: 58, X: \"\u8f9b\", Y: \"\",   Z: \"\",   AA: \"\u8f9b\", AB: \"\u9149\", AC: 11 },\n          { W: 59, X: \"\u58ec\", Y: \"\u8f9b\", Z: \"\u4e01\", AA: \"\u620a\", AB: \"\u620c\", AC: 10 },\n          { W: 60, X: \"\u7678\", Y: \"\",   Z: \"\u7532\", AA: \"\u58ec\", AB: \"\u4ea5\", AC: 12 }\n        ];\n\n        \/\/ --- \u30d8\u30eb\u30d1\u30fc\u95a2\u6570\u7fa4 ---\n        function getExcelDateSerial(year, month, day) {\n            const excelEpoch = new Date(Date.UTC(1899, 11, 30));\n            const targetDate = new Date(Date.UTC(year, month - 1, day));\n            const diffTime = targetDate.getTime() - excelEpoch.getTime();\n            const diffDays = Math.floor(diffTime \/ (1000 * 60 * 60 * 24));\n            return diffDays;\n        }\n\n        function getSetsuriStringForYear(year) {\n            if (year > 2200) return \"646566888987\";\n            return setsuriData[year] || null;\n        }\n\n        function getSetsuriDayForMonth(setsuriString, month) {\n            if (!setsuriString || month < 1 || month > 12) return null;\n            const dayChar = setsuriString.charAt(month - 1);\n            return parseInt(dayChar);\n        }\n\n        function getMonthSetsuriAdjustment(birthDay, setsuriDayInMonth) {\n            if (birthDay < setsuriDayInMonth) return -1;\n            return 0;\n        }\n\n        \/\/ P4: \u5e74\u306e\u7bc0\u5165\u308a\u5224\u5b9a (\u4fee\u6b63\u9069\u7528\u6e08\u307f)\n        function getYearSetsuriAdjustment(birthMonth_D4, birthDay_E4, setsuriStringForYear_S4) {\n            if (birthMonth_D4 === 1) {\n                return -1;\n            }\n            if (birthMonth_D4 === 2) {\n                const februarySetsuriDayString = setsuriStringForYear_S4.charAt(1);\n                const februarySetsuriDay = parseInt(februarySetsuriDayString);\n                if (isNaN(februarySetsuriDay)) {\n                    console.error(\"Error: 2\u6708\u306e\u7bc0\u5165\u308a\u65e5\u306e\u53d6\u5f97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002setsuriString:\", setsuriStringForYear_S4);\n                    return 0; \n                }\n                if (birthDay_E4 < februarySetsuriDay) {\n                    return -1;\n                }\n            }\n            return 0;\n        }\n\n        function calculateNenkanNo(year, p4_yearAdjustment) {\n            let baseNo = (year - 3) % 60;\n            if (baseNo === 0 &#038;&#038; (year - 3) !== 0) baseNo = 60;\n            else if (baseNo < 0) baseNo += 60;\n            let nenkanNo = baseNo + p4_yearAdjustment;\n            if (nenkanNo <= 0) nenkanNo += 60;\n            return nenkanNo;\n        }\n\n        function calculateGetsukanNo(year, month, q4_monthAdjustment) {\n            let baseNo = (1 + month + ((year + 1) % 5) * 12) % 60;\n            if (baseNo === 0) baseNo = 60;\n            let getsukanNo = baseNo + q4_monthAdjustment;\n            if (getsukanNo <= 0) getsukanNo += 60;\n            if (getsukanNo > 60) getsukanNo -= 60;\n            return getsukanNo;\n        }\n\n        function calculateNikkanNo(excelDateSerial_F4) {\n            const val = excelDateSerial_F4 - 51;\n            let nikkanNo = val % 60;\n            if (nikkanNo < 0) nikkanNo += 60;\n            if (nikkanNo === 0 &#038;&#038; val !== 0) return 60;\n            if (nikkanNo === 0 &#038;&#038; val === 0) return 60;\n            return nikkanNo === 0 ? 60 : nikkanNo;\n        }\n\n        function getTenchusatsuGroup(nikkanNo_M4) {\n            let eto1, eto2;\n            if (nikkanNo_M4 >= 1 && nikkanNo_M4 <= 10) { eto1 = \"\u620c\"; eto2 = \"\u4ea5\"; }\n            else if (nikkanNo_M4 >= 11 && nikkanNo_M4 <= 20) { eto1 = \"\u7533\"; eto2 = \"\u9149\"; }\n            else if (nikkanNo_M4 >= 21 && nikkanNo_M4 <= 30) { eto1 = \"\u5348\"; eto2 = \"\u672a\"; }\n            else if (nikkanNo_M4 >= 31 && nikkanNo_M4 <= 40) { eto1 = \"\u8fb0\"; eto2 = \"\u5df3\"; }\n            else if (nikkanNo_M4 >= 41 && nikkanNo_M4 <= 50) { eto1 = \"\u5bc5\"; eto2 = \"\u536f\"; }\n            else if (nikkanNo_M4 >= 51 && nikkanNo_M4 <= 60) { eto1 = \"\u5b50\"; eto2 = \"\u4e11\"; }\n            else { return \"\u4e0d\u660e\"; }\n            return eto1 + eto2;\n        }\n\n        function getKanFromNo(kanNo) {\n            const entry = kanshiMasterTable.find(row => row.W === kanNo);\n            return entry ? entry.X : \"\u4e0d\u660e\";\n        }\n\n        \/\/ --- \u30e1\u30a4\u30f3\u306e\u5b9f\u884c\u95a2\u6570 ---\n        function calculateAllForBirthDate(year, month, day) {\n            const f4_excelDateSerial = getExcelDateSerial(year, month, day);\n            if (isNaN(f4_excelDateSerial)) return { error: \"\u65e5\u4ed8\u306e\u8a08\u7b97\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\" };\n\n            const s4_setsuriString = getSetsuriStringForYear(year);\n            if (!s4_setsuriString) return { error: `\u5e74\u306e\u7bc0\u5165\u308a\u30c7\u30fc\u30bf\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093 (${year}\u5e74)` };\n\n            const r4_setsuriDayInMonth = getSetsuriDayForMonth(s4_setsuriString, month);\n            if (r4_setsuriDayInMonth === null || isNaN(r4_setsuriDayInMonth)) return { error: \"\u6708\u306e\u7bc0\u5165\u308a\u65e5\u304c\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002\" };\n            \n            const q4_monthAdj = getMonthSetsuriAdjustment(day, r4_setsuriDayInMonth);\n            \n            \/\/ P4\u306e\u8a08\u7b97 (\u4fee\u6b63\u9069\u7528\u6e08\u307f)\n            const p4_yearAdj = getYearSetsuriAdjustment(month, day, s4_setsuriString);\n\n            const o4_nenkanNo = calculateNenkanNo(year, p4_yearAdj);\n            const n4_getsukanNo = calculateGetsukanNo(year, month, q4_monthAdj);\n            const m4_nikkanNo = calculateNikkanNo(f4_excelDateSerial);\n\n            const j4_tenchusatsuGroup = getTenchusatsuGroup(m4_nikkanNo);\n\n            const i4_nenkan = getKanFromNo(o4_nenkanNo);\n            const h4_getsukan = getKanFromNo(n4_getsukanNo);\n            const g4_nikkan = getKanFromNo(m4_nikkanNo);\n\n            return {\n                error: null,\n                tenchusatsuGroup: j4_tenchusatsuGroup,\n                nenkan: i4_nenkan,\n                getsukan: h4_getsukan,\n                nikkan: g4_nikkan,\n                nenkanNo: o4_nenkanNo,\n                getsukanNo: n4_getsukanNo,\n                nikkanNo: m4_nikkanNo,\n                debug_f4_serial: f4_excelDateSerial,\n                debug_s4_string: s4_setsuriString,\n                debug_r4_day: r4_setsuriDayInMonth,\n                debug_q4_adj: q4_monthAdj,\n                debug_p4_adj: p4_yearAdj\n            };\n        }\n\n        function displayMyTenchusatsu() {\n            const birthdateInput = document.getElementById('birthdate');\n            const resultDiv = document.getElementById('result');\n            const detailsDiv = document.getElementById('details');\n            resultDiv.innerHTML = \"\";\n            detailsDiv.innerHTML = \"\";\n\n            if (!birthdateInput.value) {\n                resultDiv.innerHTML = '<p class=\"error\">\u751f\u5e74\u6708\u65e5\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>';\n                return;\n            }\n\n            const dateParts = birthdateInput.value.split('-');\n            const year = parseInt(dateParts[0]);\n            const month = parseInt(dateParts[1]);\n            const day = parseInt(dateParts[2]);\n\n            if (isNaN(year) || isNaN(month) || isNaN(day)) {\n                resultDiv.innerHTML = '<p class=\"error\">\u6709\u52b9\u306a\u751f\u5e74\u6708\u65e5\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>';\n                return;\n            }\n            \n            const minYear = Math.min(...Object.keys(setsuriData).map(Number));\n            const maxYear = Math.max(...Object.keys(setsuriData).map(Number));\n             if (year < minYear || year > maxYear +1 ) {\n                 if (!(year > 2200 && getSetsuriStringForYear(year))) {\n                    resultDiv.innerHTML = `<p class=\"error\">\u5bfe\u5fdc\u3057\u3066\u3044\u308b\u5e74 (${minYear}\uff5e${maxYear}\u5e74\u3001\u307e\u305f\u306f2200\u5e74\u8d85\u306e\u4e00\u90e8) \u306e\u7bc4\u56f2\u5916\u3067\u3059\u3002<\/p>`;\n                    return;\n                 }\n            }\n\n            const results = calculateAllForBirthDate(year, month, day);\n\n            if (results.error) {\n                resultDiv.innerHTML = `<p class=\"error\">\u8a08\u7b97\u30a8\u30e9\u30fc: ${results.error}<\/p>`;\n            } else {\n                resultDiv.innerHTML = `\u3042\u306a\u305f\u306e\u5929\u4e2d\u6bba\u306f\u300c<strong>${results.tenchusatsuGroup}\u5929\u4e2d\u6bba<\/strong>\u300d\u3067\u3059\u3002`;\n                detailsDiv.innerHTML = `\n                    <p><strong>\u751f\u5e74\u6708\u65e5:<\/strong> ${year}\u5e74${month}\u6708${day}\u65e5<\/p>\n                    <p><strong>\u5e74\u5e72\u652f:<\/strong> ${results.nenkan} (${results.nenkanNo})<\/p>\n                    <p><strong>\u6708\u5e72\u652f:<\/strong> ${results.getsukan} (${results.getsukanNo})<\/p>\n                    <p><strong>\u65e5\u5e72\u652f:<\/strong> ${results.nikkan} (${results.nikkanNo})<\/p>\n                    <hr>\n                    <p style=\"font-size:0.8em; color:#666;\">\n                        \u30c7\u30d0\u30c3\u30b0\u60c5\u5831:<br>\n                        F4 (Excel\u65e5\u4ed8\u30b7\u30ea\u30a2\u30eb\u5024\u8fd1\u4f3c): ${results.debug_f4_serial}<br>\n                        S4 (\u5e74\u7bc0\u5165\u6587\u5b57\u5217): ${results.debug_s4_string}<br>\n                        R4 (\u6708\u7bc0\u5165\u65e5): ${results.debug_r4_day}<br>\n                        Q4 (\u6708\u8abf\u6574): ${results.debug_q4_adj}<br>\n                        P4 (\u5e74\u8abf\u6574): ${results.debug_p4_adj}<br>\n                    <\/p>\n                `;\n            }\n        }\n    <\/script>\n<\/body>\n<\/html>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5929\u4e2d\u6bba\u30c1\u30a7\u30c3\u30ab\u30fc \u5929\u4e2d\u6bba\u30c1\u30a7\u30c3&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-161","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/luck.buynari.net\/index.php?rest_route=\/wp\/v2\/pages\/161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/luck.buynari.net\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/luck.buynari.net\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/luck.buynari.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/luck.buynari.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=161"}],"version-history":[{"count":7,"href":"https:\/\/luck.buynari.net\/index.php?rest_route=\/wp\/v2\/pages\/161\/revisions"}],"predecessor-version":[{"id":203,"href":"https:\/\/luck.buynari.net\/index.php?rest_route=\/wp\/v2\/pages\/161\/revisions\/203"}],"wp:attachment":[{"href":"https:\/\/luck.buynari.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}