三国情论坛

 找回密码
 注册入口
多发好剧
小技巧:关键词之间加空格 例如:稀缺 热门 原创 压制 教育 学习
查看: 2120|回复: 2
打印 上一主题 下一主题

[询技术/其他] 用C#写一段按钮的代码

[复制链接]
  • 打卡等级:著名演员
  • 打卡总天数:56
  • 最近打卡:2024-12-22 10:04:45

主题
1783
战斗力
20140
美誉度
535
铜钱
4428
注册时间
2022-3-27
最后登录
2024-12-22
在线时间
178 小时

阳光心情动漫达人摸金校尉荣誉会员优秀会员普通精华长期在线老会员勋章热心人士

跳转到指定楼层
楼主
发表于 2023-3-11 19:54:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请尊重分享者,本资源仅限交流未经楼主同意严禁转载或盈利,违者封号处理!
300铜钱
用C#写一段按钮的代码,根据用户的选择的时间公历或农历,显示出对应的天干地支。

这一段按钮的代码是要整合到一个八字算命软件中的,目前还没有根据用户输入的时间判断对应天干地支的功能。

注释要用简体中文写。其中无论用户选择的的是公历还是农历,

在点击此按钮后都要转换为对应的农历天干地支。

此功能要整合到已经存在的软件中。

最佳答案

查看完整内容

来了来了来了来了,请结贴
免责申明 - 论坛版权1、本站所有资源均来自会员分享或网络收集整理,仅供会员交流学习,禁用商业用途或盈利,下载后请在24小时之内删除;
2、本站(www.975w.com)支持正版,本资源版权归版权方所有,观看或阅读请到相应机构购买正版资源;
3、本站资源均来源于网络,本站不参与录制、上传,如本帖侵犯到任何版权问题,请立即告知本站(laopanyou#qq.com(#=@)),本站将及时予与删除并致以最深的歉意;
楼主热贴
唵嘛呢叭咪吽
回复

拉黑 使用道具 举报

主题
355
战斗力
3035
美誉度
463
铜钱
4326
注册时间
2022-5-24
最后登录
2024-12-21
在线时间
211 小时
沙发
发表于 2023-3-11 19:54:04 | 只看该作者
本帖最后由 tiger008 于 2023-3-11 19:59 编辑

来了来了来了来了,请结贴

三国情论坛(975w.com)的特点:

满12000铜钱,点这里了解如何直接提现;

本站每个资源帖均需铜钱才能下载,没有VIP。提高了搬运门槛,最大限度保护你的帖子不被搬运;

③你的帖子审核不通过,原因一般在这里;楼主帖子有问题,你想退币的,请按照这个流程申请;

④新人有好资源的(AI优化、独家字幕、稀有),且是全网首发,就可以突破售价上限直接发布到“精品区

⑤别人发过的资源,如果你没有二次加工出独特卖点,就不要发了,否则别人举报判定重复资源就会被删除。

回复

拉黑 使用道具 举报

主题
355
战斗力
3035
美誉度
463
铜钱
4326
注册时间
2022-5-24
最后登录
2024-12-21
在线时间
211 小时
板凳
发表于 2023-3-11 20:06:13 | 只看该作者
用C#写一段按钮的代码,根据用户的选择的时间公历或农历,显示出对应的天干地支。

这一段按钮的代码是要整合到一个八字算命软件中的,目前还没有根据用户输入的时间判断对应天干地支的功能。

注释要用简体中文写。其中无论用户选择的的是公历还是农历,

在点击此按钮后都要转换为对应的农历天干地支。

此功能要整合到已经存在的软件中。
以下是用C#编写的按钮代码,用于根据用户选择的时间公历或农历,显示出对应的天干地支:


// 引用相关命名空间
using System;
using System.Windows.Forms;
using System.Globalization;

n**espace 八字算命软件
{
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();
        }

        // 点击按钮事件处理方法
        private void button1_Click(object sender, EventArgs e)
        {
            // 获取用户选择的时间
            DateTime dateTime = dateTimePicker1.Value;

            // 判断用户选择的是公历还是农历
            bool isGregorian = radioButton1.Checked;
            bool isLunar = radioButton2.Checked;

            // 根据用户选择的时间类型,获取对应的天干地支
            string ganZhi;
            if (isGregorian)
            {
                // 公历转换为农历
                ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();
                int year = calendar.GetYear(dateTime);
                int month = calendar.GetMonth(dateTime);
                int day = calendar.GetDayOfMonth(dateTime);
                int leapMonth = calendar.GetLeapMonth(year);
                bool isLeapMonth = month == leapMonth;
                ganZhi = GetGanZhi(calendar, year, month, day, isLeapMonth);
            }
            else if (isLunar)
            {
                // 直接获取农历天干地支
                ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();
                int year = dateTime.Year;
                int month = dateTime.Month;
                int day = dateTime.Day;
                bool isLeapMonth = calendar.IsLeapMonth(year, month);
                ganZhi = GetGanZhi(calendar, year, month, day, isLeapMonth);
            }
            else
            {
                // 用户未选择时间类型,提示错误信息
                MessageBox.Show("请选择时间类型(公历或农历)!");
                return;
            }

            // 显示天干地支
            label1.Text = ganZhi;
        }

        // 根据年月日获取天干地支
        private string GetGanZhi(ChineseLunisolarCalendar calendar, int year, int month, int day, bool isLeapMonth)
        {
            // 获取年的天干地支
            int ganIndex = calendar.GetCelestialStem(year) - 1;
            int zhiIndex = calendar.GetTerrestrialBranch(year) - 1;
            string ganZhi = GetGanZhiString(ganIndex, zhiIndex);

            if (isLeapMonth)
            {
                // 获取闰月的天干地支
                int leapMonthIndex = calendar.GetLeapMonth(year);
                if (month == leapMonthIndex)
                {
                    ganIndex = 13;
                    zhiIndex = calendar.GetTerrestrialBranch(year, month) - 1;
                    ganZhi += "闰" + GetGanZhiString(ganIndex, zhiIndex);
                }
                else if (month > leapMonthIndex)
                {
                    // 如果当前月份在闰月之后,则需要减一
                    month--;
                }
            }

            // 获取月和日的天干地支
            ganIndex = (month - 1) % 10;
            zhiIndex = (day - 1) % 12;
            ganZhi += GetGan


        ZhiString(ganIndex, zhiIndex);

        return ganZhi;
    }

    // 根据天干地支序号获取对应的天干地支字符串
    private string GetGanZhiString(int ganIndex, int zhiIndex)
    {
        string[] ganArray = new string[] { "甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸" };
        string[] zhiArray = new string[] { "子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥" };

        string gan = ganArray[ganIndex];
        string zhi = zhiArray[zhiIndex];

        return gan + zhi;
    }
}
}


这段代码中,首先判断用户选择的时间类型是公历还是农历,然后根据用户选择的时间类型,获取对应的天干地支。如果用户未选择时间类型,则弹出错误提示。在获取天干地支时,如果选择的时间是农历,并且包含闰月,需要特殊处理。

此功能可以在现有的八字算命软件中进行整合。用户选择时间后,点击按钮即可显示对应的天干地支。



三国情论坛(975w.com)的特点:

满12000铜钱,点这里了解如何直接提现;

本站每个资源帖均需铜钱才能下载,没有VIP。提高了搬运门槛,最大限度保护你的帖子不被搬运;

③你的帖子审核不通过,原因一般在这里;楼主帖子有问题,你想退币的,请按照这个流程申请;

④新人有好资源的(AI优化、独家字幕、稀有),且是全网首发,就可以突破售价上限直接发布到“精品区

⑤别人发过的资源,如果你没有二次加工出独特卖点,就不要发了,否则别人举报判定重复资源就会被删除。

回复

拉黑 使用道具 举报

严禁灌水、讽刺、挖苦、辱骂分享者行为。回复前请详读:点击进入 理性回复,以免永久封禁。
您需要登录后才可以回帖 登录 | 注册入口

本版积分规则

免责声明:本站所有资源均收集自互联网,没有提供影片资源存储,也未参与录制、上传。若本站收录的资源涉及您的版权或知识产权或其他利益,请附上版权证明邮件告知,在收到邮件后24小时内删除。

Copyright © 2021 [三国情] 管理员邮箱:97889527#qq.com(#=@)

手机版|小黑屋|隐私政策|三国情论坛 |网站地图

快速回复 返回顶部 返回列表