var Tablica = []; Tablica[0] = ['1989-10-1', '1989-11-17', parseFloat("0.0032")]; Tablica[1] = ['1989-11-18', '1989-12-31', parseFloat("0.005")]; Tablica[2] = ['1990-01-1', '1990-01-31', parseFloat("0.023")]; Tablica[3] = ['1990-02-1', '1990-02-28', parseFloat("0.013")]; Tablica[4] = ['1990-03-1', '1990-03-31', parseFloat("0.006")]; Tablica[5] = ['1990-04-1', '1990-04-30', parseFloat("0.005")]; Tablica[6] = ['1990-05-1', '1990-05-31', parseFloat("0.0035")]; Tablica[7] = ['1990-06-1', '1990-06-30', parseFloat("0.0025")]; Tablica[8] = ['1990-07-1', '1990-10-15', parseFloat("0.0018")]; Tablica[9] = ['1990-10-16', '1990-11-25', parseFloat("0.0023")]; Tablica[10] = ['1990-11-26', '1991-01-31', parseFloat("0.003")]; Tablica[11] = ['1991-02-1', '1991-04-30', parseFloat("0.0039")]; Tablica[12] = ['1991-05-1', '1991-07-7', parseFloat("0.0032")]; Tablica[13] = ['1991-07-8', '1991-08-1', parseFloat("0.0027")]; Tablica[14] = ['1991-08-2', '1991-09-14', parseFloat("0.0024")]; Tablica[15] = ['1991-09-15', '1993-02-28', parseFloat("0.002")]; ....
pola oznaczaja: 1. data poczatkowa 2. data koncowa 3. stopa procentowa w podanym przedziale czasowym wyrazone w formie liczby zmiennoprzecinkowej
chcę dodać pola: data z pierwszej kolumny wyrażona w milisekundach, data z pierwszej kolumny wyrażona w milisekundach, ilosc dni w podanym przedziale czasowym, naliczone odsetki, stopa procentowa wyrażona przesunięta o 2 miejsca po przecinku, data z pierwszej i drugiej kolumny sformatowana do post: DD/MM/RRRR
2. Definiuję parametry
kwota = parseFloat(document.getElementById("kwota").value);
3. DODAJE ELEMENTY DO TABLICY
for (i = 0; i < Tablica.length; i++) { //data z pierwszej kolumny tablicy w milisekundach str_od = Tablica[i][0].split('-'); //document.write(str[0]+' '+str[1]+' '+str[2]); //testowanie poprawnosci data_od_tabl_milisek = new Date(str_od[0], str_od[1] - 1, str_od[2]).getTime(); //document.write(data_od_tabl_milisek); //testowanie poprawnosci dlugosc_Tablica_i_3 = Tablica[i].push(data_od_tabl_milisek); //dodanie rekordu na końcu tablicy //data z drugiej kolumny tablicy str_do = Tablica[i][1].split('-'); data_do_tabl_milisek = new Date(str_do[0], str_do[1] - 1, str_do[2]).getTime(); dlugosc_Tablica_i_4 = Tablica[i].push(data_do_tabl_milisek); //dodanie rekordu na końcu tablicy //ilośc dni pomiedzy data z pierwszej kolumny a data z drugiej kolumny number_of_day_between = ((data_do_tabl_milisek - data_od_tabl_milisek) / (1000 * 60 * 60 * 24)); dlugosc_Tablica_i_5 = Tablica[i].push(number_of_day_between); //dodanie rekordu na końcu tablicy //odsetki w podanym okresie czasowym od podanej kwoty (zdefiniowana wyzej) odsetki_between = parseFloat(((kwota * Tablica[i][2]) / 365) * Tablica[i][5]); // ((kwota * odsetki)/365) * ilosc-dni odsetki_between_gr = Math.decimal(odsetki_between, 2); dlugosc_Tablica_i_6 = Tablica[i].push(odsetki_between_gr); //dodanie rekordu na końcu tablicy //document.write(Tablica[i]); //testowanie poprawnosci // przeliczenie stopy procentowej w kolumny 3 na % stopa_wyswietl = Tablica[i][2] * 100 // przeliczenie odsetek na %!!! dlugosc_Tablica_i_7 = Tablica[i].push(stopa_wyswietl); //dodanie rekordu na końcu tablicy //daty z pierwszej i drugiej kolumny w innej formie data_od_wyswietl = str_od[2] +'/'+str_od[1]+'/'+str_od[0]; dlugosc_Tablica_i_8 = Tablica[i].push(data_od_wyswietl); //dodanie rekordu na końcu tablicy data_do_wyswietl = str_do[2] +'/'+str_do[1]+'/'+str_do[0]; dlugosc_Tablica_i_9 = Tablica[i].push(data_do_wyswietl); //dodanie rekordu na końcu tablicy document.write(Tablica[i]+' '); //testowanie poprawnosci }
OTO WYNIK:
1989-10-1,1989-11-17,0.0032,623196000000,627260400000,47.041666666666664,0.25,0.32,1/10/1989,17/11/1989 1989-11-18,1989-12-31,0.005,627346800000,631062000000,43,0.35,0.5,18/11/1989,31/12/1989 1990-01-1,1990-01-31,0.023,631148400000,633740400000,30,1.13,2.3,1/01/1990,31/01/1990 1990-02-1,1990-02-28,0.013,633826800000,636159600000,27,0.58,1.3,1/02/1990,28/02/1990 1990-03-1,1990-03-31,0.006,636246000000,638834400000,29.958333333333332,0.3,0.6,1/03/1990,31/03/1990 1990-04-1,1990-04-30,0.005,638920800000,641426400000,29,0.24,0.5,1/04/1990,30/04/1990 1990-05-1,1990-05-31,0.0035,641512800000,644104800000,30,0.17,0.35000000000000003,1/05/1990,31/05/1990 1990-06-1,1990-06-30,0.0025,644191200000,646696800000,29,0.12,0.25,1/06/1990,30/06/1990 1990-07-1,1990-10-15,0.0018,646783200000,655941600000,106,0.31,0.18,1/07/1990,15/10/1990 1990-10-16,1990-11-25,0.0023,656028000000,659487600000,40.041666666666664,0.15,0.22999999999999998,
16/10/1990,25/11/1990 1990-11-26,1991-01-31,0.003,659574000000,665276400000,66,0.33,0.3,26/11/1990,31/01/1991 1991-02-1,1991-04-30,0.0039,665362800000,672962400000,87.95833333333333,0.56,0.38999999999999996,1/02/1991,30/04/1991 1991-05-1,1991-07-7,0.0032,673048800000,678837600000,67,0.35,0.32,1/05/1991,7/07/1991 1991-07-8,1991-08-1,0.0027,678924000000,680997600000,24,0.11,0.27,8/07/1991,1/08/1991 1991-08-2,1991-09-14,0.0024,681084000000,684799200000,43,0.17,0.24,2/08/1991,14/09/1991 1991-09-15,1993-02-28,0.002,684885600000,730854000000,532.0416666666666,1.75,0.2,15/09/1991,28/02/1993 1993-03-1,1994-05-12,0.0019,730940400000,768693600000,436.9583333333333,1.37,0.19,1/03/1993,12/05/1994 1994-05-13,1995-02-20,0.0018,768780000000,793234800000,283.0416666666667,0.84,0.18,13/05/1994,20/02/1995 1995-02-21,1995-05-28,0.0019,793321200000,801612000000,95.95833333333333,0.3,0.19,21/02/1995,28/05/1995 1995-05-29,1995-09-17,0.0016,801698400000,811288800000,111,0.29,0.16,29/05/1995,17/09/1995 1995-09-18,1996-01-7,0.0015,811375200000,820969200000,111.04166666666667,0.27,0.15,18/09/1995,7/01/1996 1996-01-8,1997-12-31,0.0014,821055600000,883522800000,723,1.66,0.13999999999999999,8/01/1996,31/12/1997 ....
Mam pytanie. Czemu wylicza mi zła ilość dni? np. w okresie miedzy 1.03 a 31.01 wyliczył 30 dni...Czy wystarczy, jeśli dodam +1 do wyliczonej wartości..
np.w piątym wierszu wyliczyło mi ilość dni 29.958333333333332, w pierwszym 47.041666666666664... czemu?
w niektórych wierszach pomnożenie kolumny 3 przez 100 daje dziwny rezutlat: np. w wierszu 7 daje ileś miejsc po przecinku i też nie wiem czemu...
Czy ktos moze pomóc?
Pozdrawiam