31.08.2026 07:41:10
Готовый код. Копируете, запускаете, вводите дату.
Python
************************************************************************
STEMS = "甲乙丙丁戊己庚辛壬癸"
BRANCHES = "子丑寅卯辰巳午未申酉戌亥"
def jdn(y, m, d):
a = (14 - m) // 12
yy = y + 4800 - a
mm = m + 12 * a - 3
return d + (153*mm+2)//5 + 365*yy + yy//4 - yy//100 + yy//400 - 32045
def gz(s, b):
return STEMS[s % 10] + BRANCHES[b % 12]
def day(y, m, d):
i = (jdn(y, m, d) + 49) % 60
return gz(i, i)
def year(y, m, d):
ys = y if (m > 2 or (m == 2 and d >= 4)) else y - 1
i = (ys - 1984) % 60
return gz(i, i), i % 10
def month(ys, m, d):
t = (m, d)
if t < (1, 6): o = 10
elif t < (2, 4): o = 11
else:
for o in range(10, -1, -1):
if t >= [(2,4),(3,6),(4,5),(5,6),(6,6),(7,7),
(8,8),(9,8),(10,8),(11,7),(12,7)][o]:
break
br = [2,3,4,5,6,7,8,9,10,11,0,1][o]
st = ([2,4,6,8,0][ys % 5] + o) % 10
return gz(st, br)
def hour(ds, h):
br = (h + 1) // 2 % 12
st = ([0,2,4,6,8][STEMS.index(ds) % 5] + br) % 10
return gz(st, br)
# ══════════════════════════════════════
print("БАЦЗЫ | 2697 до н.э. — 9999 н.э.")
print("Ввод: год месяц день [час]")
print("До н.э. = минус: -200 6 5 → 5 июня 200 до н.э.")
print("Enter = выход\n")
while True:
s = input("Дата: ").strip()
if not s: break
p = s.split()
if len(p) < 3:
print(" Нужно: год месяц день\n"); continue
y, m, d = int(p[0]), int(p[1]), int(p[2])
h = int(p[3]) if len(p) > 3 else 12
# для JDN: исторический год → астрономический
ay = y + 1 if y < 0 else y
yp, ys = year(ay, m, d)
mp = month(ys, m, d)
dp = day(ay, m, d)
hp = hour(dp[0], h)
label = f"{abs(y)} до н.э." if y < 0 else f"{y}"
print(f"\n {d}.{m}.{label} {h}:00\n")
print(f" 年 月 日 時")
print(f" {yp} {mp} {dp} {hp}\n")
*************************************************************************
Все что между звездочками выше копировать!
***
Как запустить за 30 секунд
Откройте www.programiz.com
Удалите всё, что там есть
Вставьте код выше
Нажмите Run ▶
Внизу в поле ввода вбейте дату:
-200 6 5 8
Это = 5 июня 200 до н.э., 8 утра
***
Формат ввода
Что вводите Что это значит
2000 1 1 12 1 января 2000, полдень
-200 6 5 8 5 июня 200 до н.э., 8 утра
-2697 2 4 0 4 февраля 2697 до н.э., полночь
1984 1 31 31 января 1984, полдень (по умолчанию)
9999 12 31 23 31 декабря 9999, 23:00
***
Честное предупреждение
Границы месяцев (Цзе) в коде приближённые (±1–2 дня). Если дата рождения попадает на 3–6 февраля или 5–8 число любого месяца — столп месяца может сбиться на один. Для таких пограничных дат нужна сверка с 萬年曆 (wan nian li). Для всех остальных дат (95% случаев) — точно.
Можно сделать в любом блокноте Питона, но этот не требует аккаунта.
Берегите себя.
Готовый код. Копируете, запускаете, вводите дату.
В сентябре приходит грабитель для людей с элементом личности огонь ян и металл ян. Вы можете тратить деньги в любой день, но лучше это сделать в начале месяца.Кто такой грабитель и почему его нужно кормить?Бывают такие дни, когда всё к одному. Ломается транспорт, тут же теряются ключи, кошелек. Троюродному...