You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Windows Forms的MonthCalendar控件获取整数类型日、月、年值?

实现方案

不需要对日期字符串做手动切割拆分,基于.NET的DateTime类型处理是最稳定的,不会因为系统区域日期格式差异导致取值错误,有两种实现路径:

路径1:基于你已拿到的日期字符串转换提取

  • 先通过DateTime.TryParse把字符串格式的日期解析为DateTime结构体实例
  • 直接从实例的内置属性取年、月、日的整数值
    示例代码:
// 替换为你实际获取到的日期字符串变量
string dateStr = "你拿到的字符串格式日期";

if (DateTime.TryParse(dateStr, out DateTime selectedDate))
{
    // 三个独立整数变量
    int year = selectedDate.Year;
    int month = selectedDate.Month;
    int day = selectedDate.Day;
}

路径2:直接从控件取值(更推荐,跳过字符串转换步骤)

你已经把MaxSelectionCount设为1,此时控件的SelectionStart属性就是选中的日期,本身就是DateTime类型,不需要先转成字符串再解析,直接取值即可:

DateTime selectedDate = monthCalendar1.SelectionStart;
int year = selectedDate.Year;
int month = selectedDate.Month;
int day = selectedDate.Day;

注意:不要用字符串截取、固定分隔符拆分的方式处理日期,不同设备的系统短日期格式可能为yyyy/MM/dd、MM/dd/yyyy、dd.MM.yyyy等多种形式,硬编码拆分规则很容易出现年月日错位的问题。

内容的提问来源于stack exchange,提问作者Ruthenium

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.06 16:18:55