日天干和时辰地支构成的时辰干支,以北京时间(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
内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值