comparison src/entai/entai.go @ 4:4c6bfc90d75c

rate fix & not consider last date
author pyon@macmini
date Tue, 18 Oct 2016 21:28:25 +0900
parents ca866a38a6a0
children e4066309b04f
comparison
equal deleted inserted replaced
3:ca866a38a6a0 4:4c6bfc90d75c
1 /****************************************************************************/ 1 /****************************************************************************/
2 /* Entai.go ( ver 0.3 ) */ 2 /* Entai.go ( ver 0.3 ) */
3 /* Last Change: 2016-10-16 Sun 09:50:13. */ 3 /* Last Change: 2016-10-18 Tue 21:26:15. */
4 /* By T.Mutoh */ 4 /* By T.Mutoh */
5 /****************************************************************************/ 5 /****************************************************************************/
6 6
7 package entai 7 package entai
8 8
31 31
32 func ( e *Entai ) DefaultRates() { 32 func ( e *Entai ) DefaultRates() {
33 // 1カ月まで, 1カ月経過後, 元旦 33 // 1カ月まで, 1カ月経過後, 元旦
34 createRates( 4.3, 14.6, "20120101" ) // H24 34 createRates( 4.3, 14.6, "20120101" ) // H24
35 createRates( 4.3, 14.6, "20130101" ) // H25 35 createRates( 4.3, 14.6, "20130101" ) // H25
36 createRates( 4.3, 14.6, "20140101" ) // H26 36 createRates( 2.9, 9.2, "20140101" ) // H26
37 createRates( 2.9, 9.2, "20150101" ) // H27 37 createRates( 2.8, 9.1, "20150101" ) // H27
38 createRates( 2.8, 9.1, "20160101" ) // H28 38 createRates( 2.8, 9.1, "20160101" ) // H28
39 createRates( 2.8, 9.1, "20170101" ) // H29 ***** 39 createRates( 2.8, 9.1, "20170101" ) // H29 *****
40 40
41 for range nyds { 41 for range nyds {
42 e.yd0 = append( e.yd0, 0 ) 42 e.yd0 = append( e.yd0, 0 )
113 } 113 }
114 if e.paid.Sub( tmp ) == 0 { 114 if e.paid.Sub( tmp ) == 0 {
115 for j, _ := range nyds { 115 for j, _ := range nyds {
116 e.yd1[j] -= e.yd0[j] 116 e.yd1[j] -= e.yd0[j]
117 } 117 }
118 e.yd1[len(e.yd1)-1]-- 118 e.ed = i
119 e.ed = i - 1 119 //e.yd1[len(e.yd1)-1]-- // コメントアウト:最終日を参入しない
120 //e.ed-- // 同上
120 break 121 break
121 } 122 }
122 } 123 }
123 } 124 }
124 125
154 /* 追加情報 */ 155 /* 追加情報 */
155 detail := fmt.Sprintf( "%d,%.0f,%d =", e.tax, tmp, e.ed ) 156 detail := fmt.Sprintf( "%d,%.0f,%d =", e.tax, tmp, e.ed )
156 for i, _ := range nyds { 157 for i, _ := range nyds {
157 tmp1 := float64( e.yd0[i] ) * rate0s[i] * float64( e.tax ) / 365.0 158 tmp1 := float64( e.yd0[i] ) * rate0s[i] * float64( e.tax ) / 365.0
158 tmp2 := float64( e.yd1[i] ) * rate1s[i] * float64( e.tax ) / 365.0 159 tmp2 := float64( e.yd1[i] ) * rate1s[i] * float64( e.tax ) / 365.0
159 detail += fmt.Sprintf( ": %d %d (%.0f+%.0f=%.0f)", e.yd0[i], e.yd1[i], tmp1, tmp2, tmp1 + tmp2 ) 160 detail += fmt.Sprintf( ": %d %d (%.1f+%.1f=%.1f)", e.yd0[i], e.yd1[i], tmp1, tmp2, tmp1 + tmp2 )
160 } 161 }
161 162
162 return intrst, detail 163 return intrst, detail
163 } 164 }
164 165