首页/新闻资讯/正文详情

Humanizer OnDate.September 详解:用 Fluent API 优雅构造九月的每一天

发布时间:2026/9/28 3:11:36 来源:云帆数科 栏目:资讯中心
Humanizer OnDate.September 详解:用 Fluent API 优雅构造九月的每一天
开发工具【免费下载链接】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点击查看免费下载OnDate.September是 Humanizer FluentDate 体系中的一个静态访问器类用于以自然语言风格直接获取当前年份九月中任意一天的System.DateOnly值例如OnDate.September.The1st表示今年的 9 月 1 日。通过本文你将掌握该类的全部 30 个静态属性与动态方法The(int dayNumber)的用法、其背后的 T4 模板生成原理以及基于源码与测试用例的最佳实践与边界约束。类定位FluentDate 中的 DateOnly 访问器OnDate.September定义于 Humanizer 的 FluentDate 目录 之下命名空间为Humanizer其 API 参考文档位于 Humanizer.OnDate.September.md。该类的完整声明为public class OnDate.September继承关系System.Object→September是一个普通静态成员类本身非静态类但所有成员均为静态。返回类型所有成员统一返回System.DateOnly即 .NET 6 引入的仅日期结构体不含时间分量。平台前提对应实现被#if NET6_0_OR_GREATER条件编译保护见 OnDate.Days.cs因此该类仅在 .NET 6 及更高目标框架下可用。从源码结构看OnDate是面向DateOnly的整套 12 个月份访问器容器同目录下还存在返回DateTime的On系列On.Days.cs以及面向相对时间的In/InDate系列共同构成 Humanizer 的 FluentDate 日期表达式 DSL。完整属性清单The1st 到 The30th与原 API 文档一致OnDate.September提供 30 个静态只读属性分别对应九月30 天月份的每一天。九月没有The31st这是与 31 天月份类如OnDate.January包含The31st见 Humanizer.OnDate.January.md的显著差异。每个属性的声明形式均为public static System.DateOnly The10th { get; }完整成员清单如下属性含义属性含义The1st今年 9 月 1 日The16th今年 9 月 16 日The2nd今年 9 月 2 日The17th今年 9 月 17 日The3rd今年 9 月 3 日The18th今年 9 月 18 日The4th今年 9 月 4 日The19th今年 9 月 19 日The5th今年 9 月 5 日The20th今年 9 月 20 日The6th今年 9 月 6 日The21st今年 9 月 21 日The7th今年 9 月 7 日The22nd今年 9 月 22 日The8th今年 9 月 8 日The23rd今年 9 月 23 日The9th今年 9 月 9 日The24th今年 9 月 24 日The10th今年 9 月 10 日The25th今年 9 月 25 日The11th今年 9 月 11 日The26th今年 9 月 26 日The12th今年 9 月 12 日The27th今年 9 月 27 日The13th今年 9 月 13 日The28th今年 9 月 28 日The14th今年 9 月 14 日The29th今年 9 月 29 日The15th今年 9 月 15 日The30th今年 9 月 30 日所有属性均为基于当前年份的计算属性无论何时访问返回的日期年份始终取DateTime.Now.Year月份固定为 9日期为属性名对应的序号。动态方法The(int dayNumber)除了 30 个固定属性OnDate.September还提供一个参数化入口用于以变量方式指定九月中的任意一天public static System.DateOnly The(int dayNumber);参数dayNumberSystem.Int32表示九月的第 N 天。返回值System.DateOnly即当前年份九月的第dayNumber天。典型用法是配合循环或动态业务值构造日期例如距开学第 N 天这类场景for (int day 1; day 30; day) { DateOnly date OnDate.September.The(day); Console.WriteLine(date); // 输出今年 9 月 1 日 … 今年 9 月 30 日 }从源码实现看The(int dayNumber)直接执行new(DateTime.Now.Year, 9, dayNumber)。由于System.DateOnly构造函数会校验日期合法性当dayNumber不在 1–30 的合法区间内时例如 0、31 或负数会抛出ArgumentOutOfRangeException这一点在实际调用时需要自行保证参数范围。实战示例在项目中直接使用以下代码可在 .NET 6 项目中直接运行需引用 Humanizer 程序集并using Humanizer;using Humanizer; // 固定属性开学纪念日今年 9 月 1 日 DateOnly schoolOpening OnDate.September.The1st; // 属性与 DateTime 互转 DateTime asDateTime OnDate.September.The10th.ToDateTime(TimeOnly.MinValue); // 动态方法报到日由变量决定 int checkInDay 15; DateOnly checkIn OnDate.September.The(checkInDay); // 与字符串化、序数化能力组合输出如 September 15 string label checkIn.ToString(MMMM d); Console.WriteLine($开学日{schoolOpening}); Console.WriteLine($报到日{label}{checkIn});结合 Humanizer 的其他扩展你可以进一步把该日期输出为自然语言例如使用 DateToOrdinalWordsExtensions 或 DateHumanizeExtensions 生成9 月 15 日或3 天前等人类可读文案使 FluentDate 的取值能力与 Humanizer 的格式化能力形成完整闭环。源码实现与 T4 生成机制OnDate.September的实现位于 OnDate.Days.cs其核心逻辑极其精简——每个成员都只是一行表达式public class September { public static DateOnly The(int dayNumber) new(DateTime.Now.Year, 9, dayNumber); public static DateOnly The1st new(DateTime.Now.Year, 9, 1); // ... The30th 同理 }值得注意的是这 30 个属性并非手写而是由 T4 文本模板 OnDate.Days.tt 自动生成的模板机制可以总结为以下几点闰年锚点模板以leapYear 2012为基准遍历 12 个月确保 2 月 29 日这类仅闰年存在的日期也能被覆盖到。月份名推导通过new DateTime(leapYear, month, 1).ToString(MMMM)获得本地化月份名如September并据此生成对应类名。天数推导用DateTime.DaysInMonth(leapYear, month)计算当月天数因此 9 月只会生成The1st–The30th不会有 31 号。序数词生成调用 Humanizer 的day.Ordinalize()把数字转成1st、2nd、3rd、21st、22nd、23rd、30th等属性名后缀这正是属性命名中 11/12/13 与 21/22/23 后缀差异的来源。条件编译模板整体输出被#if NET6_0_OR_GREATER包裹与DateOnly的可用性保持一致。理解了这套生成机制就可以从源码层面解释该 API 文档中的每一个成员它们不是手写常量而是由固定年份 月份 序号模板批量推导的、随DateTime.Now.Year动态变化的计算属性。测试验证与使用注意事项Humanizer 仓库在 OnDateTests.cs 中为该系列提供了验证用例例如[Fact] public void OnJanuaryThe23rd() Assert.Equal(new(DateTime.Now.Year, 1, 23), OnDate.January.The23rd); [Fact] public void OnFebruaryThe() Assert.Equal(new(DateTime.Now.Year, 2, 11), OnDate.February.The(11));同样的模式适用于OnDate.September将月份换为 9。基于源码与测试使用时有以下几点值得注意年份动态性所有成员返回当前年份的九月日期跨年调用会产生不同的DateOnly若需要指定年份应改用new DateOnly(year, 9, day)自行构造。合法范围固定属性天然限定在 1–30The(int dayNumber)接受任意int但非 1–30 的值会触发DateOnly构造时的参数校验异常业务代码应先做边界判断。框架版本类仅在NET6_0_OR_GREATER下编译面向 .NET Framework 或 .NET 5 的项目无法使用该 API可退回On.September返回DateTime系列。静态调用所有成员均为静态无需实例化OnDate或September直接以OnDate.September.The15th形式调用即可。相关资源API 参考Humanizer.OnDate.September.md源码实现OnDate.Days.cs生成模板OnDate.Days.tt测试用例OnDateTests.cs同类 APIHumanizer.OnDate.January.md含 31 天对照赞分享开发工具【免费下载链接】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 OnDate.September 流式日期 API 完全指南用 DateOnly 表达九月第 N 天Humanizer OnDate.September 流式日期 API 完全指南用 DateOnly 表达九月第 N 天 本文是 Humanizer 流式开发工具Humanizer OnDate.September 详解用流式 API 构建 9 月日期DateOnlyHumanizer OnDate.September 详解用流式 API 构建 9 月日期DateOnly 本篇指南聚焦 Humanizer 的 OnDa开发工具Humanizer OnDate.December 流畅日期 API 完全指南用 C 优雅构造当年 12 月的每一天Humanizer OnDate.December 流畅日期 API 完全指南用 C 优雅构造当年 12 月的每一天 导读 OnDate.December 是开发工具上一篇ViGEmBus虚拟手柄驱动终极指南5分钟让任何手柄变Xbox控制器下一篇天穹飞控GPS定点悬停调参指南从打杆匀加速到刹车匀减速的实现创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

OpenCore Legacy Patcher 完整教程:如何给老 Mac 装上新版 macOS
OpenCore Legacy Patcher 完整教程:如何给老 Mac 装上新版 macOS

OpenCore Legacy Patcher 完整教程:如何给老 Mac 装上新版 macOS 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 苹果停止支持后,不少… · 2026/9/28 3:11:35

Aspen EDR 二次开发教程(19):LLM-Agent 与 EDR 数据面协作——工具边界与防幻觉闸门
Aspen EDR 二次开发教程(19):LLM-Agent 与 EDR 数据面协作——工具边界与防幻觉闸门

Aspen EDR 二次开发教程(19):LLM-Agent 与 EDR 数据面协作——工具边界与防幻觉闸门版本声明块 软件:Aspen EDR 家族 Aspen Plus / Aspen HYSYS(aspenONE V15 为讨论基线)语言/环境:Python 3.x… · 2026/9/28 3:11:35

ddebiftool延迟微分方程分支分析实战指南
ddebiftool延迟微分方程分支分析实战指南

/* 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:11:34

Spingboot启动预热的实现
Spingboot启动预热的实现

启动预热的适用场景启动预热适合以下情况:数据主要来自第三方接口,无法直接从本地数据库读取。第三方接口响应较慢,首次访问容易超时。一个页面需要调用多个第三方接口或逐项查询。数据读取频繁,但变化不频繁。希望服务启动后&… · 2026/9/28 3:40:12

Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment
Understanding Driving Risks using Large Language Models: Toward Elderly Driver Assessment

文章主要内容总结 本文研究了多模态大语言模型(具体为ChatGPT-4o)利用静态行车记录仪图像进行类人交通场景解读的潜力,重点聚焦与老年司机评估相关的三项任务:交通密度评估、交叉口可见性评估和停车标志识别。这些任务需上下文推理而非简单目标检测。研究采用零样本、少样… · 2026/9/28 3:32:43

Leveraging Large Language Models for Classifying App Users‘ Feedback
Leveraging Large Language Models for Classifying App Users‘ Feedback

文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)解决应用用户反馈分类的挑战,传统方法依赖有监督机器学习,但受限于标注数据集的规模和质量。研究通过三个核心实验评估了4种先进LLMs(GPT-3.5-Turbo、GPT-4o、Flan-T5、Llama3-70b)的性能: LLMs在用户反馈分类中的基… · 2026/9/28 3:32:43

Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...
Using Large Language Models for Legal Decision-Making in Austrian Value-Added Tax Law: An Experim...

文章主要内容总结 本文通过实验评估了大型语言模型(LLMs)在奥地利及欧盟增值税(VAT)法框架下辅助法律决策的能力。研究聚焦于两种提升LLM性能的方法——微调(fine-tuning)和检索增强生成(RAG),并在两类案例中进行验证:一是权威教科书案例,二是税务咨询公司的真实案… · 2026/9/28 3:32:43

学Java别走弯路,这5个方向最吃香
学Java别走弯路,这5个方向最吃香

学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/28 3:32:15

AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions
AlphaAgents: Large Language Model based Multi-Agents for Equity Portfolio Constructions

AlphaAgents相关总结与翻译 一、文章主要内容总结 (一)研究背景与问题 传统股票投资组合管理依赖人类分析师处理海量信息(如财务披露、财报、市场新闻等),存在信息处理效率低、易受认知偏差(如损失厌恶、过度自信)影响的问题,可能错失投资收益机会。尽管AI在数据处理… · 2026/9/28 3:32:08

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

制作网页比较方便的软件怎么选?一文搞懂避坑指南
制作网页比较方便的软件怎么选?一文搞懂避坑指南

制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量

婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略

济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码