プログラマメモ2 - programmer no memo2

deltaT - う〜ん BETWEEN A AND BってA,B含むのかな? 2012/10/19

地球自転の遅れの補正の値(ΔT)がほしくていろいろさがしていて、下記のサイトにいきあたりました。


式でもとめられるので、これは便利だと思ったのでした。まあ、ざっくりとした精度でよかったのですが、ちょっと悩んでます。BETWEEN A AND B の英語って、AとBという値を含めるのかしらということでした。

きっと含むんだろうなー
 下記のコードだと境界値のおしりのほうは前の判定が有効になってしまうのでまずいよなーと思いつつ。
 
       static double deltaT(int yyyy) {

        if (1961 <= yyyy && yyyy <= 1986){
            // Between years 1961 and 1986, calculate:
            // ΔT = 45.45 + 1.067*t - t^2/260 - t^3 / 718
            // where: t = y - 1975
            double t = yyyy - 1975;
            double dT = 45.45 + 1.067*t - Math.pow(t, 2)/260 - Math.pow(t, 3) / 718;
            return dT;
        }
      
        if (1986 <= yyyy && yyyy <= 2005) {
            // Between years 1986 and 2005, calculate:
            // ΔT = 63.86 + 0.3345 * t - 0.060374 * t^2 + 0.0017275 * t^3 +
            // 0.000651814 * t^4
            // + 0.00002373599 * t^5
            // where: t = y - 2000
            double t = yyyy - 2000;
            double dT = 63.86 + 0.3345 * t - 0.060374 * Math.pow(t, 2)
                    + 0.0017275 * Math.pow(t, 3) + 0.000651814 * Math.pow(t, 4)
                    + 0.00002373599 * Math.pow(t, 5);
            return dT;
        }

        if (2005 <= yyyy && yyyy <= 2050) {
            // Between years 2005 and 2050, calculate:
            // ΔT = 62.92 + 0.32217 * t + 0.005589 * t^2
            // where: t = y - 2000
            double t = yyyy - 2000;
            double dT = 62.92 + 0.32217 * t + 0.005589 * Math.pow(t, 2);
            return dT;
        }

        return 0;
    }



実行して得られた値は以下
1961:33.579881
1962:33.988889
1963:34.498839
1964:35.101376
1965:35.788142
1966:36.550782
1967:37.380938
1968:38.270254
1969:39.210374
1970:40.192941
1971:41.209598
1972:42.251989
1973:43.311757
1974:44.380547
1975:45.450000
1976:46.511761
1977:47.557473
1978:48.578780
1979:49.567325
1980:50.514751
1981:51.412703
1982:52.252823
1983:53.026754
1984:53.726141
1985:54.342627
1986:54.867855
1987:55.316429
1988:55.776765
1989:56.296447
1990:56.894641
1991:57.574824
1992:58.327633
1993:59.133716
1994:59.966576
1995:60.795421
1996:61.588015
1997:62.313521
1998:62.945353
1999:63.464027
2000:63.860000
2001:64.136529
2002:64.312513
2003:64.425341
2004:64.533746
2005:64.720646
2006:65.054224
2007:65.449051
2008:65.855056
2009:66.272239
2010:66.700600
2011:67.140139
2012:67.590856
2013:68.052751
2014:68.525824
2015:69.010075
2016:69.505504
2017:70.012111
2018:70.529896
2019:71.058859
2020:71.599000
2021:72.150319
2022:72.712816
2023:73.286491
2024:73.871344
2025:74.467375
2026:75.074584
2027:75.692971
2028:76.322536
2029:76.963279
2030:77.615200
2031:78.278299
2032:78.952576
2033:79.638031
2034:80.334664
2035:81.042475
2036:81.761464
2037:82.491631
2038:83.232976
2039:83.985499
2040:84.749200
2041:85.524079
2042:86.310136
2043:87.107371
2044:87.915784
2045:88.735375
2046:89.566144
2047:90.408091
2048:91.261216
2049:92.125519
2050:93.001000

: