> For the complete documentation index, see [llms.txt](https://documentation.soulver.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://documentation.soulver.app/zh/yu-fa-can-kao/dates/dates-and-times.md).

# 日历计算

不再需要日历上数日子了！

### 从日期增加或减去时间

```
6月10日 + 3 周                | 7月1日
2019年4月1日 − 3 个月 5 天    | 2018年12月27日

12/02/1988 + 32 年            | 2020年2月12日
01.05.2005 + 3 年 2 个月 3 周 | 2008年7月22日

3 周 后 2019年3月14日         | 2019年4月4日
3月12日 - 28 天                | 2月12日
6月5日 + 2 个月 3 天          | 8月8日

昨天 - 8 周 3 天              | 7月12日
昨天 + 1 周                   | 6月11日
```

### 获取相对于当前日期的日期

```
今天 + 3 周     | 10月1日
今天 − 1 个月   | 5月5日

今天 + 4 天     | 9月14日
3 天 前         | 9月7日
```

### 使用节假日名称计算

可以在日期计算中使用节假日名称（目前只能用英文书写）。例如，`days until Christmas` 计算距离圣诞节还有多少天。

对于日期每年变化的节假日，指定年份即可查询日期：

`Easter 2027` → **March 28, 2027**

**支持的节假日和特殊日期**

* **圣诞节：** Christmas Eve、Christmas Day、Boxing Day、Orthodox Christmas
* **复活节：** Good Friday、Holy Saturday、Easter Sunday、Easter Monday、Orthodox Good Friday、Orthodox Easter
* **新年：** New Year’s Eve、New Year’s Day、Chinese New Year’s Eve、Chinese New Year
* **斋月：** Ramadan（开始）、End of Ramadan
* **光明节：** Hanukkah（开始）、End of Hanukkah
* **其他日期：** Valentine’s Day、Halloween、Thanksgiving（美国）、Black Friday

无论这些日期在你所在国家是否为公共假日，都可以在计算中使用这些名称。

### **查找两个日期之间的时间量**

```
1月10日 - 2月5日            | 3 周 5 天

3月3日 到 5月30日           | 2 月 3 周 6 天

自 7月15日 以来的 天        | 57 天
距 12月25日 还有多少 天     | 106 天
3月3日 和 5月30日 之间的 天 | 88 天

1978 to 2021                | 42 years

```

最后一个示例只有英文写法；Soulver 在任何语言下都能识别英文写法。

{% hint style="info" %}
时间间隔是从第一个日期的中午到最后一个日期的中午计算的。

如果您想将起始和结束日期都包含在间隔内，请使用包含间隔函数（参见 [下面](#inclusive-intervals-of-time-1)）
{% endhint %}

### 两个日期之间的包含时间间隔 <a href="#inclusive-intervals-of-time" id="inclusive-intervals-of-time"></a>

```
从 4月1日 经过 4月30日 的 天 | 30 天
```

### 周数（ISO 8601）

```
今年第几周             | 36
2021年3月12日 是第几周 | 10
```

### 获取日期的组成部分

查询某个日期是当年或当月的第几天：

`2024年3月15日 是第几天` → **75**

`2024年3月15日 是当月第几天` → **15**

不指定日期时，`今年第几天` 和 `当月第几天` 使用今天的日期。

### **一个月或一个季度有多少天**

```
Q3 有多少 天        | 92 天
2020年2月 有多少 天 | 29 天
```

### 今年已经过去了多少？

输入 `年 %`，查看今年已经过去的百分比。

也可以使用 `月 %`、`周 %` 或 `天 %`，分别查询当前月、周或日的进度。

### 查找两个日期之间的中点

```
3月12日 和 4月5日 的中间日期            | 3月24日
```

### 日期格式

使用格式模式控制日期的显示方式：

`2023年3月12日 为 EEEE, MMM d, yyyy` → **星期日, 3月 12, 2023**

这里，`EEEE` 表示星期名称，`MMM` 表示月份缩写，`d` 表示当月的日期，`yyyy` 表示四位数年份。

访问 [NSDateFormatter.com](https://www.nsdateformatter.com)，了解格式符号并尝试自己的格式。

## 关于日历计算歧义性的说明

**模糊的月份**

与天和周不同，月份在秒的定义上并不明确。Soulver 会根据表达式尝试执行最合乎逻辑的操作。它很擅长考虑到闰年和其他日历的特殊情况：

```
2月28日 + 1 个月       | 3月28日
2020年1月31日 + 1 个月 | 2020年2月29日
```

**未指定年份的日期**

没有指定年份的日期可能会使用当前年份或下一年。

```
# 2019年12月时

// 假设下一年，因为最近的一月在未来
1月12日 + 3 周 | 2020年2月2日

// 假设今年，因为月份仍然在近期过去
11月1日 - 5 天 | 2019年10月27日
```
