开发工具【免费下载链接】HumanizerHumanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities项目地址https://gitcode.com/gh_mirrors/hu/Humanizer点击查看免费下载Humanizer 的On.December类是 FluentDate 流式日期模块中针对十二月的专用访问器它把当前年份 12 月的第 N 天封装成一组以英文序数命名的静态只读属性The1stThe31st并提供一个The(int dayNumber)动态方法让开发者可以写出On.December.The25th这样接近自然语言的日期表达式替代晦涩的new DateTime(DateTime.Now.Year, 12, 25)。本文以 Humanizer 3.0.1 的 API 文档为主线结合仓库中 FluentDate 的源码、T4 模板与单元测试完整梳理该类的全部成员、实现原理与配套 API读完即可在业务代码中直接使用这套流式日期语法。类概览On.December 是什么On.December是定义在Humanizer命名空间下On静态类中的一个嵌套类API 文档给出的声明为public class On.December它继承自System.Object是一个纯粹的日期访问器容器类本身不保存状态所有成员均为static每次访问都基于当前年份实时构造并返回一个System.DateTime值。其设计目标非常单一——把「当前年份 12 月的第 N 天」这一高频日期构造场景从命令式的new DateTime(DateTime.Now.Year, 12, N)转换为声明式、可读、可自动补全的On.December.TheN表达式。using Humanizer; // 传统写法 var christmas new DateTime(DateTime.Now.Year, 12, 25); // Humanizer 流式写法二者等价 var christmas2 On.December.The25th;类中成员的完整构成如下成员类别成员名称返回类型语义具名属性 × 31The1st~The31stSystem.DateTime静态只读当前年份 12 月对应的具体日期动态方法 × 1The(int dayNumber)System.DateTime静态当前年份 12 月第dayNumber天31 个具名属性The1st The31st 速查表API 文档逐一列出了On.December的全部 31 个属性每个属性的签名模式完全一致以The10th为例public static System.DateTime The10th { get; }属性值的语义统一为「The Nth day of December of the current year」当前年份 12 月的第 N 天完整清单如下属性语义属性语义The1st12 月 1 日The17th12 月 17 日The2nd12 月 2 日The18th12 月 18 日The3rd12 月 3 日The19th12 月 19 日The4th12 月 4 日The20th12 月 20 日The5th12 月 5 日The21st12 月 21 日The6th12 月 6 日The22nd12 月 22 日The7th12 月 7 日The23rd12 月 23 日The8th12 月 8 日The24th12 月 24 日平安夜The9th12 月 9 日The25th12 月 25 日圣诞节The10th12 月 10 日The26th12 月 26 日The11th12 月 11 日The27th12 月 27 日The12th12 月 12 日The28th12 月 28 日The13th12 月 13 日The29th12 月 29 日The14th12 月 14 日The30th12 月 30 日The15th12 月 15 日The31st12 月 31 日跨年夜The16th12 月 16 日从仓库源码 src/Humanizer/FluentDate/On.Days.cs 可以看到December嵌套类的每个属性实现都极为直接——用当前年份与固定月份、日期构造DateTimepublic class December { public static DateTime The1st new(DateTime.Now.Year, 12, 1); public static DateTime The2nd new(DateTime.Now.Year, 12, 2); // …… public static DateTime The25th new(DateTime.Now.Year, 12, 25); // …… public static DateTime The31st new(DateTime.Now.Year, 12, 31); }这些属性全部是static只读属性{ get; }且无 setter因此每次访问都会依据调用时刻的DateTime.Now.Year实时计算天然具备跟随当前年份自动漂移的特性——代码无需随年份变化修改。The(int) 动态方法按编号取日期除 31 个具名属性外On.December还提供了一个参数化的静态方法public static System.DateTime The(int dayNumber);参数dayNumber类型System.Int32表示目标日期在 12 月中的号数合法范围 131返回值System.DateTime即当前年份 12 月第dayNumber天的日期。其源码实现见 On.Days.cs为public static DateTime The(int dayNumber) new(DateTime.Now.Year, 12, dayNumber);该方法与具名属性完全等价例如On.December.The(25)与On.December.The25th返回同一个日期。适合处理号数在运行时才确定的场景例如根据配置或用户输入动态取日期using Humanizer; int day ReadDayOfMonth(); // 例如 25 DateTime target On.December.The(day); // 12 月 25 日 // 也可以先判断再选择具名写法 DateTime newYearsEve On.December.The31st;需要注意The(dayNumber)直接以dayNumber作为DateTime构造函数的 day 参数若传入超出 131 的非法值如 0、32 或负数会由System.DateTime构造函数抛出参数异常。这一点可从源码中直接透传 dayNumber 构造的实现方式推断得出调用方应自行保证参数合法性。实现原理T4 模板驱动的代码生成On.December乃至整个On类并非手写维护而是由一个 T4 文本模板 src/Humanizer/FluentDate/On.Days.tt 在构建时批量生成的。模板的核心逻辑如下const int leapYear 2012; for (var month 1; month 12; month) { var firstDayOfMonth new DateTime(leapYear, month, 1); var monthName firstDayOfMonth.ToString(MMMM); // January ~ December public class # monthName # { … } }模板以2012 年闰年作为基准遍历 12 个月用DateTime.DaysInMonth(leapYear, month)获取各月天数——12 月因此得到 31 天恰好对应The1stThe31st的完整序列同时用扩展方法day.Ordinalize()见 src/Humanizer/OrdinalizeExtensions.cs把数字转换成英文序数1 → 1st、2 → 2nd、3 → 3rd、4 → 4th……从而生成The1st、The2nd、The3rd、The4th这类属性名。这意味着十二个月的On.Month嵌套类由同一套模板产出结构完全对称On.JanuaryOn.December均位于 On.Days.cs属性名的英文序数拼写由Ordinalize()统一保证正确性如21 → 21st、22 → 22nd、23 → 23rd、31 → 31st这也是The21st、The22nd、The23rd、The31st等特殊拼写无需手工维护的原因生成代码与模板一一对应On.Days.cs 中December类的 XML 注释「Provides fluent date accessors for December」同样来自模板输出。与周边流式日期 API 的协作On.December只是 Humanizer FluentDate 体系中的一环实践中常与下列同类 API 组合使用1.In.December/In.DecemberOf(int year)—— 取整月首日DateTime位于 src/Humanizer/FluentDate/In.Months.cs返回的是 12 月 1 日而非任意一天public static DateTime December new(DateTime.UtcNow.Year, 12, 1); public static DateTime DecemberOf(int year) new(year, 12, 1);2.OnDate.December—— 取任意一天DateOnly.NET 6位于 src/Humanizer/FluentDate/OnDate.Days.cs与On.December结构一致但返回System.DateOnly适用于只需日期、无需时间分量的 .NET 6 场景// #if NET6_0_OR_GREATER 条件下可用 DateOnly christmas OnDate.December.The25th;3.InDate.December/InDate.DecemberOf(int year)—— 取整月首日DateOnly位于 src/Humanizer/FluentDate/InDate.Months.cs是In系列的 DateOnly 版本同样仅在 .NET 6 编译。四者组合可以覆盖 12 月相关的全部常见构造需求using Humanizer; DateTime dec1 In.December; // 今年 12 月 1 日DateTime DateTime dec1of25 In.DecemberOf(2025); // 2025 年 12 月 1 日 DateTime dec25 On.December.The25th; // 今年 12 月 25 日 DateOnly d25 OnDate.December.The25th; // 今年 12 月 25 日DateOnly, .NET 6测试验证仓库中的可复现证据Humanizer 为 FluentDate 提供了对应的单元测试可直接作为 API 行为契约参考tests/Humanizer.Tests/FluentDate/OnTests.cs 验证了On.December.The4th等价于new(DateTime.Now.Year, 12, 4)[Fact] public void OnDecemberThe4th() Assert.Equal(new(DateTime.Now.Year, 12, 4), On.December.The4th);tests/Humanizer.Tests/FluentDate/OnDateTests.cs 在#if NET6_0_OR_GREATER条件下验证了 DateOnly 版本的OnDate.December.The4th同文件还验证了动态方法On.February.The(11)等价于new(DateTime.Now.Year, 2, 11)说明The(int)与具名属性遵循同一实现约定。完整的流式日期示例工程见 website/docs/_examples/scenarios-fluent-dates/可在其中查看该类 API 在真实项目中的用法。使用建议与注意事项当前年份取自本地时间从 On.Days.cs 可以看到On.December系列使用DateTime.Now.Year本地时区年份而In.DecemberIn.Months.cs使用的是DateTime.UtcNow.YearUTC 年份。在跨时区应用中两者在年末年初交界处可能返回不同年份需要按业务语义选择。跨年边界行为由于年份在访问时才解析On.December.The31st在 12 月 31 日当天访问返回当年的 12 月 31 日若在次年 1 月 1 日访问则返回新一年的 12 月 31 日。若需固定某一年份的日期应改用In.DecemberOf(year)与手动构造组合或直接使用new DateTime(year, 12, day)。参数合法性The(int dayNumber)的合法输入为 131传入非法号数会由DateTime构造抛出异常建议在动态取号场景中先做范围校验。类型选择只需日期无时间分量且运行于 .NET 6 时优先考虑OnDate.December返回DateOnly避免引入无意义的TimeOfDay分量需要DateTime如与旧代码或数据库交互时使用On.December。小结On.December是 Humanizer FluentDate 模块中结构最完整的月份访问器之一31 个具名静态属性覆盖 12 月的每一天The(int)方法提供动态取号能力二者都由 On.Days.tt 模板基于闰年基准统一生成并通过 OnTests.cs 等测试固化行为契约。配合In.December、OnDate.December、InDate.December等兄弟 API可以在不引入任何运行时依赖的情况下把 12 月相关的日期构造代码写得如同英文自然语言一样直白可读。赞分享开发工具【免费下载链接】HumanizerHumanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities项目地址https://gitcode.com/gh_mirrors/hu/Humanizer点击查看免费下载相关推荐Humanizer 流式日期 API 详解On.December 与十二月日期快速构造指南Humanizer 流式日期 API 详解On.December 与十二月日期快速构造指南 导读 Humanizer 的 On 类为 .NET 开发者提供了一开发工具Humanizer 流式日期 API 详解OnDate.October 与十月日期访问器Humanizer 流式日期 API 详解OnDate.October 与十月日期访问器 导读 本文围绕 Humanizer 项目中 OnDate.Octob开发工具Humanizer 流式日期 API 详解OnDate.October 十月日期访问器使用指南Humanizer 流式日期 API 详解OnDate.October 十月日期访问器使用指南 本篇技术指南聚焦 Humanizer 库中 OnDate.Oc开发工具上一篇Jupyter 笔记本格式转换与文档处理nbconvert 与 nbformat 深入解析下一篇OpCore Simplify黑苹果配置的智能自动化技术革命创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
恶劣天气道路目标检测:YOLO小数据集实战指南 简介:本资源是一套专为恶劣天气场景下目标检测任务设计的高质量图像数据集,面向计算机视觉初学者、YOLO系列算法实践者及智能交通方向研究者,解决雨雪雾沙等低能见度条件下行人与车辆检测精度下降的现实难题。数据集共约1000张真实道路图像&a… · 2026/9/28 2:54:34
恶劣天气目标检测实战:YOLO在雨雾雪场景下的鲁棒性优化 简介:本资源是面向计算机视觉初学者与YOLO目标检测实践者的恶劣天气道路场景专用数据集,聚焦行人、车辆等关键目标在雨雪、雾、沙尘等复杂条件下的鲁棒检测需求,适用于模型泛化性验证、小样本迁移训练及YOLO系列算法(如YOLOv5/v8&… · 2026/9/28 2:54:28
深入 Boa 引擎的对象 Shapes(隐藏类)机制:从 Root Shape 到属性表分叉与回滚重建 编程语言编译器开发工具 【免费下载链接】boa Boa is an embeddable Javascript engine written in Rust. 项目地址: https://gitcode.com/gh_mirrors/bo/boa 点击查看 免费下载 对象 Shapes(隐藏类)是现代 JavaScript 引擎实现快速属性访问… · 2026/9/28 2:54:28
2026实测百度网盘直链助手脚本,速度超越PanDownload工具 随着我们手头的各种文档和视频资料越来越大,网盘在数据流转中扮演的角色也越来越重要。不管是工作交接还是备份生活点滴,它都帮了我们不少忙。
不过在日常使用中,偶尔遇到下载变慢也确实会让人感到有些苦恼。面对这种现象我们除了可以配合Pa… · 2026/9/28 3:29:08
剪映操作|输入文字后,能不能自动生成虚拟主播、配音和字幕 适用对象:AI视频生成任务的创作者。本文只处理“输入文字后,能不能自动生成虚拟主播、配音和字幕?”这一件事。先确定这一条要解决什么先给结论:处理“输入文字后,能不能自动生成虚拟主播、配音和字幕?”&a… · 2026/9/28 3:28:21
运算符 文件操作 6 运算符:算数运算: - * / % ////:整除%:求余比较运算:> < > < !赋值运算 : - *a21
b2
a,bb,a#只适合python
print(a)#2
print(b)#21逻辑运算:and or not当and,or… · 2026/9/28 3:27:47
字符集和编码 bytes 5 字符集和编码ascii——编排了128个文字字符,只需要7个0和1就可以表示了——1 byte8 bitANSI——每个字符 16 bit,2byteGBK编码Unicode:万国码utf-8:最短的字节长度8 英文:8bit,1 byte总结:as… · 2026/9/28 3:27:28
高效获取STM32开发参考方案:摆脱资料海洋,聚焦可落地项目 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 3:19:17
2026年MCP Server实战:7个工具让Claude Code多干3倍活的配置教程 \n\n2026年MCP Server实战:7个工具让Claude Code多干3倍活的配置教程 我花了3天时间把7个MCP Server全接上了,Claude Code从一个只会写代码的助手变成了能读数据库、搜文档、管GitHub的全栈搭档。本文是我的完整踩坑记录。 为什么你需要MCP Server 上个月我接了个私活,要用C… · 2026/9/28 3:17:46
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25