通过MCP连接 →

输入计算

数学公式

数学公式: 罗马数字日期转换器
Show calculation steps (1)
  1. Roman to Arabic

    Roman to Arabic: 罗马数字日期转换器

    Scan left to right; if a symbol value is less than the value to its right, subtract it, otherwise add it.

广告

结果

结果
XII_XXV_MMXXIV
转换后的日期字符串
部分 转换结果
XII
XXV
MMXXIV

什么是罗马数字日期转换器?

这个工具能把普通的日历日期转换成像 XII_XXV_MMXXIV 这样的罗马数字字符串,也可以反向操作,把罗马数字还原成普通阿拉伯数字。它常被用于纹身、刻字首饰、结婚对戒、周年纪念礼物以及碑刻铭文等场景——用罗马数字表示日期,自带一种经典而隽永的韵味。

使用方法

分别在"月""日""年"三个输入框中填入数值。每个输入框既可以填阿拉伯数字(例如 12),也可以填罗马数字(例如 XII)——转换器会自动识别你输入的形式,并输出另一种形式,因此它能逐个字段地双向转换。选择一种格式来设定三个部分的排列顺序:美式(月、日、年)、欧式(日、月、年)或 ISO(年、月、日)。再选择一种分隔符来设定各部分之间使用的符号:点号、中点、圆点、连字符、空格、下划线或斜杠。如果某个字段留空,结果中就会省略对应部分。

公式详解

从阿拉伯数字转成罗马数字时,转换器采用标准的减法记数法。它按从大到小的顺序遍历"数值/符号"对:

$$n = \sum_{i} \text{symbol}_i \quad \text{(greedy subtractive: }1000{=}M,\ 900{=}CM,\ \dots,\ 1{=}I\text{)}$$

(1000=M、900=CM、500=D、400=CD、100=C、90=XC、50=L、40=XL、10=X、9=IX、5=V、4=IV、1=I),每次贪心地附加上能容纳的最大符号并减去其数值,直到余数为零。

$$\text{while } n>0:\ \text{append largest symbol} \le n,\ n \mathrel{-}= \text{its value}$$

从罗马数字转回阿拉伯数字时,它从左向右扫描:当某个符号后面跟着更大的符号时(如 \(IX = 9\))就做减法,否则就做加法。

$$v = \sum_i \begin{cases} -s_i & s_i < s_{i+1} \\ +s_i & \text{otherwise} \end{cases}$$
Advertisement
罗马数字符号及其数值表(含减法对)
七个罗马符号加上贪心转换所用的六个减法对。

实例演示

以 月=12、日=25、年=2024,采用美式格式和下划线分隔符为例:12 转成 XII,25 转成 XXV,2024 转成 MMXXIV(\(MM=2000\)、\(XX=20\)、\(IV=4\))。按美式顺序拼接后得到 XII_XXV_MMXXIV。如果改用 ISO 顺序和点号分隔符,则得到 MMXXIV.XII.XXV

将日期拆分为日、月、年,各部分分别转换为罗马数字
一个示例日期被拆分为日、月、年,各自转换后用分隔符连接。

常见问题

它能转换的最大数字是多少? 3999(MMMCMXCIX)。标准罗马数字没有表示 4000 的单一符号,因此不支持更大的数值。

能显示 0 年或负数吗? 不能。罗马数字没有表示零的符号,可表示的最小值为 1。

它会检查日期是否真实存在吗? 不会。每个部分都是独立转换的,所以即便你在 2 月填了 31 日,工具也照样转换——它纯粹是一个数字转换器,而非日历校验器。

最后更新: