当前位置: 首页 > article >正文

Python玄学

过年期间无聊的看了看DY直播,也是迷上玄学了。突然想着为啥要自己掐指算,我这🐷脑哪记得到那么多东西啊。然后,就捣鼓捣鼓了一些玩意儿。留个纪念。
注:就是一个玄学推动学习,部分内容不必当真,本人概不负责哈 ( :

一、计算天干地支年

# coding=utf-8
"""
    @project: calTD
    @file: cal.py
    @Author:John
    @date:2025/2/3 13:38
"""
def get_gan_zhi(_year):
    # 天干
    tian_gan = ['甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸']
    # 地支
    di_zhi = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']

    # 计算天干地支索引
    gan_index = (_year - 4) % 10
    zhi_index = (_year - 4) % 12

    return f'{tian_gan[gan_index]}{di_zhi[zhi_index]}'


# 示例:计算2025年的天干地支
year = 2025
print(f"{year}年的天干地支是:{get_gan_zhi(year)}")
# 2025年的天干地支是:乙巳

二、寻找失物

看看视频

这个玩意儿就比较玄学了。先把几个数字排序

农历月 农历日  时辰的序号

然后去推算。具体怎么推算,看上面视频链接。不懂没关系咱照着做就行。

然后去推算一个主体,客体。最后根据失物口诀去找。

我12.23掉了门禁卡,这么看应该是那天成都南边开年会掉的吧。
在这里插入图片描述

# coding=utf-8
"""
    @project: calTD
    @file: find.py
    @Author:John
    @date:2025/2/3 14:09
"""
from datetime import datetime
from lunarcalendar import Converter, Solar


def get_hour_index(branch):
    # 定义时辰及其对应的索引
    hour_branches = ['子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥']

    try:
        index = hour_branches.index(branch)
        # print(f"{branch}对应的索引是: {index + 1}")
        return index + 1
    except ValueError:
        return None


def determine_chinese_hour(current_time):
    # 确定时辰范围
    chinese_hours = {
        '子': ('23:00', '01:00'),
        '丑': ('01:00', '03:00'),
        '寅': ('03:00', '05:00'),
        '卯': ('05:00', '07:00'),
        '辰': ('07:00', '09:00'),
        '巳': ('09:00', '11:00'),
        '午': ('11:00', '13:00'),
        '未': ('13:00', '15:00'),
        '申': ('15:00', '17:00'),
        '酉': ('17:00', '19:00'),
        '戌': ('19:00', '21:00'),
        '亥': ('21:00', '23:00')
    }
    # 获取当前时间的小时和分钟
    hour = current_time.hour
    minute = current_time.minute

    # 将时间转换为24小时制的分钟数
    time_in_minutes = hour * 60 + minute

    # 遍历时辰范围,找到对应的时间段
    for branch, (start, end) in chinese_hours.items():
        start_time = int(start.split(':')[0]) * 60 + int(start.split(':')[1])
        end_time = int(end.split(':')[0]) * 60 + int(end.split(':')[1])

        if start_time > end_time:
            if time_in_minutes >= start_time or time_in_minutes < end_time:
                return branch, f"{start}-{end}"
        else:
            if start_time <= time_in_minutes < end_time:
                return branch, f"{start}-{end}"

    # 如果没有匹配到任何时间段(理论上不会发生)
    return None, None


def get_chinese_hour(current_time=None):
    if current_time is None:
        current_time = datetime.now()

    # print(current_time.year, current_time.month, current_time.day)
    # 获取农历日期
    solar_date = Solar(current_time.year, current_time.month, current_time.day)
    lunar_date = Converter.Solar2Lunar(solar_date)

    # 获取时辰地支
    hour = current_time.hour
    # 获取对应的时辰和时间范围
    branch, time_range = determine_chinese_hour(current_time)
    branch_index = get_hour_index(branch)

    print(f"阳历时间:{current_time.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"农历日期:{lunar_date.year}{lunar_date.month}{lunar_date.day}")
    print(f"时辰:{branch}时")
    # print(f"时辰范围:{time_range}")
    return lunar_date, branch_index


def get_six_yi_state(month, day, _time):
    # 小六壬六仪状态
    six_yi_states = ['大安', '留连', '速喜', '赤口', '小吉', '空亡']
    # 根据年份计算六仪状态
    month_state = (month - 1) % 6
    day_state = (month_state + day - 1) % 6
    time_state = (day_state + _time - 1) % 6
    print(
        f"六仪:月宫:{six_yi_states[month_state]},日宫:{six_yi_states[day_state]},时宫:{six_yi_states[time_state]}")
    print(f'主体:{six_yi_states[time_state]},客体:{six_yi_states[day_state]}')
    return (six_yi_states[day_state],six_yi_states[time_state])


def get_result(res):
    rules = {
        ('大安',
         '大安'): '失物家中寻。此卦象预示着,若你丢失了物品,它很可能仍在家中某个角落。不妨在家中仔细搜寻,或许就能找到它。',
        ('大安',
         '留连'): '失物西北去。这意味着,失物可能朝西北方向移动了。若你记得丢失物品的大致时间或地点,不妨往西北方向找找看。',
        ('大安',
         '速喜'): '失物当日见。此卦象颇为吉祥,预示着你在当天就有可能找回失物。不妨回忆一下丢失物品的场景,或许就能迅速定位到它的位置。',
        ('大安',
         '赤口'): '失物不用找。然而,这并非完全意义上的好消息。此卦象或许在告诉你,失物可能已经难以寻回,或是寻找过程中会面临诸多困难。但莫要气馁,命运之事难以捉摸,说不定在某个不经意的瞬间,你就能与失物重逢。',
        ('大安',
         '小吉'): '失物不出门。这预示着失物仍在家中或附近区域,并未被带至远方。因此,在寻找时,应着重在住所周围或当前位置仔细搜索。',
        ('大安',
         '空亡'): '失物无影踪。空亡之卦象征着虚无、不存在,与大安相加,或许意味着失物已经彻底消失或难以寻觅。但即便如此,也莫要放弃希望,缘分之事难以捉摸,说不定在某个未知的时刻,你就能与失物再次相遇。',

        # 留连组合规则
        ('留连',
         '大安'): '失物家中藏。此卦象表明,失物可能被遗忘或放置在家中某个角落,等待被发现。你不妨在家中仔细搜寻,特别是那些平时不太留意的地方,说不定就能找到失物。',
        ('留连',
         '速喜'): '失物三天现。这意味着,失物可能在接下来的三天内被发现或寻回。在此期间,你不妨保持警惕,留意周围环境及线索,说不定就能迅速定位到失物的位置。',
        ('留连',
         '赤口'): '失物准丢失。此卦象颇为不吉,预示着失物可能已经确实丢失,或是处于不良状态。但莫要气馁,即便希望渺茫,也值得你尽力去寻找一番。',
        ('留连',
         '小吉'): '失物东南去。这表示,失物可能朝东南方向移动了。在寻找时,你可以着重关注东南方向的区域,如东南方的街道、店铺等公共场所,说不定就能有所发现。',
        ('留连',
         '空亡'): '失物不见面。此卦象象征着失物可能已经彻底消失,或是难以寻回。即便如此,也莫要轻易放弃希望,缘分之事难以捉摸,说不定在某个未知的时刻,你就能与失物再次相遇。',
        ('留连',
         '留连'): '失物在南方。当两个留连卦象相连时,预示着失物可能位于南方。你可以试着在南方区域进行仔细搜寻,特别是以失物地点为中心的南方范围,说不定就能找到它。',

        # 速喜组合规则的修改内容
        ('速喜',
         '大安'): '失物不会丢。此卦象颇为吉祥,预示着失物并未远离,可能仍在家中或附近区域。你不妨仔细搜寻一番,说不定就能迅速找到它。',
        ('速喜',
         '留连'): '失物无消息。此卦象则有些不吉,预示着关于失物的信息变得模糊,寻找起来可能会颇为困难。但莫要气馁,命运之事难以捉摸,说不定在某个不经意的瞬间,你就能得到关于失物的线索。',
        ('速喜',
         '赤口'): '失物往正北。这意味着,失物可能正朝正北方向移动。在寻找时,你不妨关注正北方向的区域,如北方的街道、公园等公共场所,说不定就能有所发现。',
        ('速喜',
         '小吉'): '失物在家里。此卦象同样吉祥,预示着失物可能仍在家中某个角落。你不妨在家中仔细搜寻一番,特别是那些平时不太留意的地方,如床底、沙发缝隙等,说不定就能找到它。',
        ('速喜',
         '空亡'): '失物不久见。此卦象虽有些波折,但预示着失物将在不久后出现或被找到。在此期间,你不妨保持耐心与信心,相信缘分自会指引你找到失物。',
        ('速喜',
         '速喜'): '失物落正南。此卦象颇为吉祥,预示着失物很可能位于正南方向。在寻找时,你不妨着重关注正南方向的区域,如南方的街道、公园、商场等公共场所,说不定就能迅速定位到失物的位置。',

        # 赤口组合规则的修改内容
        ('赤口',
         '大安'): '失物东北找。此卦象预示着,若你丢失了物品,它可能遗落在东北方向。不妨试着往那个方向去寻找,或许能有所收获。',
        ('赤口',
         '留连'): '失物不回还。此卦象则有些不吉,它似乎在告诉你,失物可能已经难以寻回,或是被某人带走且无意归还。但即便如此,也莫要轻易放弃,命运之事难以捉摸,说不定在某个未知的时刻,你就能与失物重逢。',
        ('赤口',
         '速喜'): '失物有着落。此卦象颇为吉祥,它预示着关于失物的消息即将传来,或是你很快就能找到它的下落。保持耐心与信心,相信缘分自会指引你找到失物。',
        ('赤口',
         '赤口'): '失物正西找。当两个赤口卦象相连时,预示着失物可能位于正西方向。你可以试着在正西方向的区域进行仔细搜寻,说不定就能发现它的踪迹。',
        ('赤口',
         '小吉'): '失物无信息。此卦象则表明,关于失物的线索或消息变得模糊不清,寻找起来可能会颇为困难。但莫要气馁,保持冷静与耐心,说不定在某个不经意的瞬间,你就能得到关于失物的关键线索。',
        ('赤口',
         '空亡'): '失物远走高飞。此卦象颇为不吉,它预示着失物可能已经远离了你所在的地方,或是被带到了一个难以寻觅的角落。即便如此,也莫要轻易放弃希望,命运之事难以捉摸,说不定在某个未知的时刻,你就能与失物再次相遇。',

        # 小吉组合规则的修改内容
        ('小吉',
         '大安'): '失物自己出。此卦象预示着,若你丢失了物品,它很可能会自己出现,或是被某个人无意间送回。你不必过于担心,保持平和的心态,说不定失物就会在不经意间回到你的身边。',
        ('小吉',
         '留连'): '失物上西南。这意味着,失物可能朝西南方向移动了。在寻找时,你不妨关注西南方向的区域,或许能在那边找到它。',
        ('小吉',
         '速喜'): '失物在院里。此卦象表明,失物很可能就在你家的院子里,或是附近的某个地方。仔细搜寻一番,说不定就能迅速找到它。',
        ('小吉',
         '赤口'): '失物丢了手。然而此卦象并非完全凶兆,它或许在告诉你,失物虽然已经被别人拿走,但仍有找回的可能。你可以试着回忆一下丢失物品时的场景,或是向周围的人打听一下,说不定就能得到关于失物的线索。',
        ('小吉',
         '小吉'): '失物在西南。两个吉祥之兆相加,预示着失物很可能就在西南方向。你不妨前往那个方向仔细搜寻,说不定会有意外的收获。',
        ('小吉',
         '空亡'): '失物正东找。虽然空亡之卦往往象征着虚无、难以捉摸,但与小吉相加,却给出了一丝希望。失物可能正藏在东方的某个角落,等待你去发现。',

        # 空亡组合规则的修改内容
        ('空亡',
         '大安'): '失物反复间。此卦象预示着失物的情况颇为复杂,可能时而出现线索,时而又消失无踪。在寻找过程中,你可能会遇到诸多波折与反复,但莫要气馁,保持耐心与坚持,说不定在某个不经意的瞬间,你就能找到失物的下落。',
        ('空亡',
         '留连'): '失物永不还。此卦象颇为不吉,它似乎在告诉你,失物可能已经彻底消失,或是被带到了一个你无法触及的地方。即便你付出再多努力,也可能无法找回它。但即便如此,也莫要过于沮丧,命运之事难以捉摸,说不定在某个未知的时刻,你就能以某种方式与失物重逢。',
        ('空亡',
         '速喜'): '失物在家里。此卦象又给你带来了一丝希望,它预示着失物可能仍在家中某个角落,只是你尚未发现而已。不妨仔细搜寻家中的每一个角落,说不定就能找到它。',
        ('空亡',
         '赤口'): '失物往远走。此卦象预示着失物可能已经被带往了远方,寻找起来可能会颇为困难。但莫要轻易放弃希望,你可以试着扩大寻找范围,或是寻求他人的帮助与线索,说不定就能找到失物的下落。',
        ('空亡',
         '小吉'): '失物回家里。此卦象又给你带来了好消息,它预示着失物最终会回到你的身边。虽然具体时间和方式不确定,但你可以保持信心与期待,相信缘分自会指引失物归家。',
        ('空亡',
         '空亡'): '失物寻不见。当两个空亡卦象相连时,预示着失物可能已经彻底消失或难以找回。但即便如此,也莫要过于绝望,命运之事难以捉摸,说不定在某个未知的时刻,你就能以某种意想不到的方式与失物重逢。',

    }

    if res in rules:
        print(f"{rules[res]}")
    else:
        print("无法言说")


time_str = "2024-12-23 23:00:00"
lost_time = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
lunar_date, branch_index = get_chinese_hour(lost_time)

y = get_six_yi_state(lunar_date.month, lunar_date.day, branch_index)
get_result(y)

最后
假期快结束了,补药啊 😫😭


http://www.kler.cn/a/531925.html

相关文章:

  • 深入解析 Redis AOF 机制:持久化原理、重写优化与 COW 影响
  • Vue和Java使用AES加密传输
  • 系统URL整合系列视频一(需求方案)
  • 数组排序算法
  • 【Elasticsearch】硬件资源优化
  • MongoDb user自定义 role 添加 action(collStats, EstimateDocumentCount)
  • 【Jax和Flax介绍】
  • redis实际开发应用简单实现
  • c语言练习题【数据类型、递归、双向链表快速排序】
  • 14-9-3C++STL的set容器
  • C语言按位取反【~】详解,含原码反码补码的0基础讲解【原码反码补码严格意义上来说属于计算机组成原理的范畴,不过这也是学好编程初级阶段的必修课】
  • 安装nvm后报错
  • 计算机网络中常见高危端口有哪些?如何封禁高危端口?
  • nvm的安装和使用
  • VSCode源码分析参考资料
  • Java自定义IO密集型和CPU密集型线程池
  • OpenGL学习笔记(七):Camera 摄像机(视图变换、LookAt矩阵、Camera类的实现)
  • 【6. 深入理解 C++ 中的常量】
  • G1. Yunli‘s Subarray Queries (easy version)
  • Java 大视界 -- Java 大数据在智能电网中的应用与发展趋势(71)
  • 2月3日星期一今日早报简报微语报早读
  • 遭受大量境外网络攻击,郭盛华公开发声支持DeepSeek
  • 基于Spring Security 6的OAuth2 系列之十 - 授权服务器--刷新token
  • 优化代码性能:利用CPU缓存原理
  • 人工智能学习(五)之机器学习逻辑回归算法
  • DeepSeek-R1 本地部署教程(超简版)