日天干和时辰地支构成的时辰干支,以北京时间(UTC+8)为准

 

package main import ( "fmt" "time" ) // 天干数组 var heavenlyStems = []string{"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"} // 地支数组 var earthlyBranches = []string{"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"} // 五虎遁,用于根据年干确定月干 var fiveTigerEscape = [][]int{ {2, 3, 4, 5, 6, 7, 8, 9, 0, 1}, // 甲己年 {4, 5, 6, 7, 8, 9, 0, 1, 2, 3}, // 乙庚年 {6, 7, 8, 9, 0, 1, 2, 3, 4, 5}, // 丙辛年 {8, 9, 0, 1, 2, 3, 4, 5, 6, 7}, // 丁壬年 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, // 戊癸年 } // 五鼠遁,用于根据干确定干 var fiveRatEscape = [][]int{ {4, 5, 6, 7, 8, 9, 0, 1, 2, 3}, // 甲己 {6, 7, 8, 9, 0, 1, 2, 3, 4, 5}, // 乙庚 {8, 9, 0, 1, 2, 3, 4, 5, 6, 7}, // 丙辛 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, // 丁壬 {2, 3, 4, 5, 6, 7, 8, 9, 0, 1}, // 戊癸 } // 公历年份转干支纪年 func yearToGanzhi(year int) string { // 公元 4 年是甲子年 offset := year - 4 ganIndex := offset % 10 zhiIndex := offset % 12 return heavenlyStems[ganIndex] + earthlyBranches[zhiIndex] } // 公历月份转干支纪月 func monthToGanzhi(year, month int) string { // 年干对应的五虎遁口诀 yearGanIndex := (year - 4) % 10 startGanIndex := fiveTigerEscape[yearGanIndex/5][yearGanIndex%5] monthZhiIndex := (month + 1) % 12 monthGanIndex := (startGanIndex + month - 1) % 10 return heavenlyStems[monthGanIndex] + earthlyBranches[monthZhiIndex] } // 公历期转干支 func dayToGanzhi(year, month, day int) string { // 1900 年 1 月 31 是甲子(这里为了更准确采用1949年10月1为甲子) startDate := time.Date(1949, 10, 1, 0, 0, 0, 0, time.UTC) currentDate := time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) days := int(currentDate.Sub(startDate).Hours() / 24) ganIndex := days % 10 zhiIndex := days % 12 return heavenlyStems[ganIndex] + earthlyBranches[zhiIndex] } // 公历小干支 func hourToGanzhi(dayGan string, hour int) string { // 干对应的五鼠遁口诀 dayGanIndex := 0 for i, v := range heavenlyStems { if v == dayGan { dayGanIndex = i break } } startGanIndex := fiveRatEscape[dayGanIndex/5][dayGanIndex%5] hourZhiIndex := (hour + 1) / 2 % 12 hourGanIndex := (startGanIndex + (hour+1)/2 - 1) % 10 return heavenlyStems[hourGanIndex] + earthlyBranches[hourZhiIndex] } func main() { // 获取当前时间 now := time.Now() year := now.Year() month := int(now.Month()) day := now.Day() hour := now.Hour() // 计算干支 ganzhiYear := yearToGanzhi(year) ganzhiMonth := monthToGanzhi(year, month) ganzhiDay := dayToGanzhi(year, month, day) dayGan := string(ganzhiDay[0]) ganzhiHour := hourToGanzhi(dayGan, hour) fmt.Printf("公历 %d 年 %d 月 %d %d ,对应的天干地支表示为:%s 年 %s 月 %s %s \n", year, month, day, hour, ganzhiYear, ganzhiMonth, ganzhiDay, ganzhiHour) } 转化为c语言
03-29
内容概要:本文介绍了一个基于冠豪猪优化算法(CPO)的无人机三维路径规划项目,利用Python实现了在复杂三维环境中为无人机规划安全、高效、低能耗飞行路径的完整解决方案。项目涵盖空间环境建模、无人机动力学约束、路径编码、多目标代价函数设计以及CPO算法的核心实现。通过体素网格建模、动态障碍物处理、路径平滑技术多约束融合机制,系统能够在高维、密集障碍环境下快速搜索出满足飞行可行性、安全性与能效最优的路径,并支持在线重规划以适应动态环境变化。文中还提供了关键模块的代码示例,包括环境建模、路径评估CPO优化流程。; 适合人群:具备一定Python编程基础优化算法基础知识,从事无人机、智能机器人、路径规划或智能优化算法研究的相关科研人员与工程技术人员,尤其适合研究生及有一定工作经验的研发工程师。; 使用场景及目标:①应用于复杂三维环境下的无人机自主导航与避障;②研究智能优化算法(如CPO)在路径规划中的实际部署与性能优化;③实现多目标(路径最短、能耗最低、安全性最高)耦合条件下的工程化路径求解;④构建可扩展的智能无人系统决策框架。; 阅读建议:建议结合文中模型架构与代码示例进行实践运行,重点关注目标函数设计、CPO算法改进策略与约束处理机制,宜在仿真环境中测试不同场景以深入理解算法行为与系统鲁棒性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值