gpt4 book ai didi

c# - Excel 函数到 C# 代码

转载 作者:行者123 更新时间:2023-11-30 14:38:00 25 4
gpt4 key购买 nike

所以我试图将此 Excel 单元格计算转换为 C#,但我无法真正理解它在做什么。我通读了 EDATE 定义,它仍然没有太大意义。

IF(EDATE(B25,-12)>A25,((EDATE(B25,-12)-A25)/(EDATE(B25,-12)-EDATE(EDATE(B25,-12),-12)))+1,(B25-A25)/(B25-EDATE(B25,-12)))

B25 = End Date
A25 = Start Date

它本质上是在尝试计算一年的一小部分。应该很容易做到,但我不完全确定这个 EDATE 是做什么的。

最佳答案

根据 EDATE ,您主要处理 结束日期 (B25) 前 12 个月

鉴于此,这似乎是在说:

如果开始日期比结束日期早 12 个月以上,则:

(开始日期早于结束日期前一年的时间除以一年)+ 1

其他:

开始日期早于结束日期的时间除以一年。

真的不知道 Excel 是如何处理日期算术的,也不知道这个函数的意义是什么,但一眼就看出这是我的伪命题。

实际上,它只是检查我提到的 if 条件,然后如果条件为真,则将整个算法偏移一年。


编辑

好的,一些快速研究表明 Excel 将日期算术纯粹以天为单位,因此 12/1/1900 - 1/1/1900 = 335 天。在任何一个日期上加上时间都会使它成为一天的一小部分。

鉴于此,此 Excel 公式似乎试图计算两个日期之间的小数年差。

这是一段粗略的代码,应该提供它:

TimeSpan span = endDate.Subtract(startDate);
double years = span.Days / 365.25;

关于c# - Excel 函数到 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8582542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com