美国惯例在电子表格功能(Libre,Google表格等)中有所不同

时间:2019-04-20 21:39:22

标签: excel google-sheets libreoffice-calc

Excel / Google-Sheets / LibreOffice函数DAYS360()返回基于360天的年份的两个日期之间的天数。 0(默认)用于基于美国的方法,下面是一些示例

A = 30 Apr 2016, B = 29 Feb 2016, DAYS360(A, B) = -61
A = 29 Feb 2016, B = 30 Apr 2016, DAYS360(A, B) = 60

根据规则here

,这似乎没问题

但是Excel / Google-Sheets / LibreOffice函数YEARFRAC()使用指定的天数计数约定返回两个日期之间的年数,包括小数年。即使在这里0(默认)使用US方法,我假定的(US(NASD)30/360)也将等于number of days calculated by DAYS360 * the number of seconds in a day/number of seconds in 360 days的值。表格中的值如下

A = 30 Apr 2016, B = 29 Feb 2016, YEARFRAC(A, B) = 0.1666666667
A = 29 Feb 2016, B = 30 Apr 2016, YEARFRAC(A, B) = 0.1666666667

由于可以看到DAYS360的绝对值相差一个,因此YEARFRAC的值是相同的,并且根据上面的假设假定60天,因此美国的也是如此here中提到的约定与DAYS360中提到的约定相同。

如果不是,那么这是什么确切规则,或者还有其他问题吗?

注意:在Google表格和Libre Office上测试了这些值。

1 个答案:

答案 0 :(得分:0)

0

  

AnalysisException: "cannot resolve 'unix_timestamp(t.`date`, 'yyyyMMdd')' due to data type mismatch: argument 1 requires (string or date or timestamp) type, however, 't.`date`' is of int type. 参数3:

     

0 表示美国方法-在美国方法下,如果start_date是一个月的最后一天,则将start_date的当月日期更改为   30为计算目的。此外,如果end_date是   一个月的最后一天和start_date当月的某天较早   比30日早,end_date更改为该月的第一天   在end_date之后,否则end_date的月份中的日期被更改   到30。

     

1 或其他任何值表示欧洲方法-在欧洲方法下,任何开始日期或结束日期为第31天   一个月的月日更改为30。


  

DAYS360 参数3:

     

0 表示美国(NASD)30/360-假设每月30天和360天   根据美国证券交易商协会标准,   并对输入的日期进行特定的调整,   月底。

     

1 表示实际/实际-这是根据实际   指定日期之间的天数与实际的   在此期间的几天。用于美国国债和票据,   而且与非金融用途最相关。

     

2 表示实际/ 360-这是根据实际的   指定日期之间的天数,但假定是360天。

     

3 表示实际/ 365-这是根据实际数量计算的   指定日期之间的天数,但假定是365天。

     

4 表示欧洲30/360-与0相似,此计算基于   每月30天和每年360天,但会调整月末日期   根据欧洲金融公约。