1. GENERUJĘ TABLICĘ

  1. var Tablica = [];
  2. Tablica[0] = ['1989-10-1', '1989-11-17', parseFloat("0.0032")];
  3. Tablica[1] = ['1989-11-18', '1989-12-31', parseFloat("0.005")];
  4. Tablica[2] = ['1990-01-1', '1990-01-31', parseFloat("0.023")];
  5. Tablica[3] = ['1990-02-1', '1990-02-28', parseFloat("0.013")];
  6. Tablica[4] = ['1990-03-1', '1990-03-31', parseFloat("0.006")];
  7. Tablica[5] = ['1990-04-1', '1990-04-30', parseFloat("0.005")];
  8. Tablica[6] = ['1990-05-1', '1990-05-31', parseFloat("0.0035")];
  9. Tablica[7] = ['1990-06-1', '1990-06-30', parseFloat("0.0025")];
  10. Tablica[8] = ['1990-07-1', '1990-10-15', parseFloat("0.0018")];
  11. Tablica[9] = ['1990-10-16', '1990-11-25', parseFloat("0.0023")];
  12. Tablica[10] = ['1990-11-26', '1991-01-31', parseFloat("0.003")];
  13. Tablica[11] = ['1991-02-1', '1991-04-30', parseFloat("0.0039")];
  14. Tablica[12] = ['1991-05-1', '1991-07-7', parseFloat("0.0032")];
  15. Tablica[13] = ['1991-07-8', '1991-08-1', parseFloat("0.0027")];
  16. Tablica[14] = ['1991-08-2', '1991-09-14', parseFloat("0.0024")];
  17. Tablica[15] = ['1991-09-15', '1993-02-28', parseFloat("0.002")];
  18. ....
  19.  
  20. //pola oznaczaja: 1. data poczatkowa 2. data koncowa 3. stopa procentowa w podanym przedziale czasowym wyrazone w formie liczby zmiennoprzecinkowej


chcę dodać pola: 4. data z pierwszej kolumny wyrażona w milisekundach, 5.data z drugiej kolumny wyrażona w milisekundach, 6. ilosc dni w podanym przedziale czasowym, 7.naliczone odsetki 8.stopa procentowa z 3 kolumny z przesunięciem o 2 miejsca po przecinku 9./10.-> data z pierwszej i drugiej kolumny sformatowana do post: DD/MM/RRRR

2. Definiuję parametry

  1. kwota = parseFloat(document.getElementById("kwota").value);


3. DODAJE ELEMENTY DO TABLICY


  1. for (i = 0; i < Tablica.length; i++) {
  2. //data z pierwszej kolumny tablicy w milisekundach
  3. str_od = Tablica[i][0].split('-');
  4. //document.write(str[0]+' '+str[1]+' '+str[2]); //testowanie poprawnosci
  5. data_od_tabl_milisek = new Date(str_od[0], str_od[1] - 1, str_od[2]).getTime();
  6. //document.write(data_od_tabl_milisek); //testowanie poprawnosci
  7. dlugosc_Tablica_i_3 = Tablica[i].push(data_od_tabl_milisek); //dodanie rekordu na końcu tablicy
  8.  
  9. //data z drugiej kolumny tablicy
  10. str_do = Tablica[i][1].split('-');
  11. data_do_tabl_milisek = new Date(str_do[0], str_do[1] - 1, str_do[2]).getTime();
  12. dlugosc_Tablica_i_4 = Tablica[i].push(data_do_tabl_milisek); //dodanie rekordu na końcu tablicy
  13.  
  14. //ilośc dni pomiedzy data z pierwszej kolumny a data z drugiej kolumny
  15. number_of_day_between = ((data_do_tabl_milisek - data_od_tabl_milisek) / (1000 * 60 * 60 * 24));
  16. dlugosc_Tablica_i_5 = Tablica[i].push(number_of_day_between); //dodanie rekordu na końcu tablicy
  17.  
  18. //odsetki w podanym okresie czasowym od podanej kwoty (zdefiniowana wyzej)
  19. odsetki_between = parseFloat(((kwota * Tablica[i][2]) / 365) * Tablica[i][5]); // ((kwota * odsetki)/365) * ilosc-dni
  20. odsetki_between_gr = Math.decimal(odsetki_between, 2);
  21. dlugosc_Tablica_i_6 = Tablica[i].push(odsetki_between_gr); //dodanie rekordu na końcu tablicy
  22. //document.write(Tablica[i]); //testowanie poprawnosci
  23.  
  24. // przeliczenie stopy procentowej w kolumny 3 na %
  25. stopa_wyswietl = Tablica[i][2] * 100 // przeliczenie odsetek na %!!!
  26. dlugosc_Tablica_i_7 = Tablica[i].push(stopa_wyswietl); //dodanie rekordu na końcu tablicy
  27.  
  28. //daty z pierwszej i drugiej kolumny w innej formie
  29. data_od_wyswietl = str_od[2] +'/'+str_od[1]+'/'+str_od[0];
  30. dlugosc_Tablica_i_8 = Tablica[i].push(data_od_wyswietl); //dodanie rekordu na końcu tablicy
  31.  
  32. data_do_wyswietl = str_do[2] +'/'+str_do[1]+'/'+str_do[0];
  33. dlugosc_Tablica_i_9 = Tablica[i].push(data_do_wyswietl); //dodanie rekordu na końcu tablicy
  34.  
  35. document.write(Tablica[i]+' '); //testowanie poprawnosci
  36. }


OTO WYNIK:
  1.  
  2. 1989-10-1, 1989-11-17, 0.0032, 623196000000, 627260400000, 47.041666666666664, 0.25, 0.32, 1/10/1989, 17/11/1989
  3. 1989-11-18, 1989-12-31, 0.005, 627346800000, 631062000000, 43, 0.35, 0.5, 18/11/1989, 31/12/1989
  4. 1990-01-1, 1990-01-31, 0.023, 631148400000, 633740400000, 30, 1.13, 2.3, 1/01/1990, 31/01/1990
  5. 1990-02-1, 1990-02-28, 0.013, 633826800000, 636159600000, 27, 0.58, 1.3, 1/02/1990, 28/02/1990
  6. 1990-03-1, 1990-03-31, 0.006, 636246000000, 638834400000, 29.958333333333332, 0.3, 0.6, 1/03/1990, 31/03/1990
  7. 1990-04-1, 1990-04-30, 0.005, 638920800000, 641426400000, 29, 0.24, 0.5, 1/04/1990, 30/04/1990
  8. 1990-05-1, 1990-05-31, 0.0035, 641512800000, 644104800000, 30, 0.17, 0.35000000000000003, 1/05/1990, 31/05/1990
  9. 1990-06-1, 1990-06-30, 0.0025, 644191200000, 646696800000, 29, 0.12, 0.25, 1/06/1990, 30/06/1990
  10. 1990-07-1, 1990-10-15, 0.0018, 646783200000, 655941600000, 106, 0.31, 0.18, 1/07/1990, 15/10/1990
  11. 1990-10-16, 1990-11-25, 0.0023, 656028000000, 659487600000, 40.041666666666664, 0.15, 0.22999999999999998, 16/10/1990, 25/11/1990
  12. 1990-11-26, 1991-01-31, 0.003, 659574000000, 665276400000, 66, 0.33, 0.3, 26/11/1990, 31/01/1991
  13. 1991-02-1, 1991-04-30, 0.0039, 665362800000, 672962400000, 87.95833333333333, 0.56, 0.38999999999999996, 1/02/1991, 30/04/1991
  14. 1991-05-1, 1991-07-7, 0.0032, 673048800000, 678837600000, 67, 0.35, 0.32, 1/05/1991, 7/07/1991
  15. 1991-07-8, 1991-08-1, 0.0027, 678924000000, 680997600000, 24, 0.11, 0.27, 8/07/1991, 1/08/1991
  16. 1991-08-2, 1991-09-14, 0.0024, 681084000000, 684799200000, 43, 0.17, 0.24, 2/08/1991, 14/09/1991
  17. 1991-09-15, 1993-02-28, 0.002, 684885600000, 730854000000, 532.0416666666666, 1.75, 0.2, 15/09/1991, 28/02/1993
  18. 1993-03-1, 1994-05-12, 0.0019, 730940400000, 768693600000, 436.9583333333333, 1.37, 0.19, 1/03/1993, 12/05/1994
  19. 1994-05-13, 1995-02-20, 0.0018, 768780000000, 793234800000, 283.0416666666667, 0.84, 0.18, 13/05/1994, 20/02/1995
  20. 1995-02-21, 1995-05-28, 0.0019, 793321200000, 801612000000, 95.95833333333333, 0.3, 0.19, 21/02/1995, 28/05/1995
  21. 1995-05-29, 1995-09-17, 0.0016, 801698400000, 811288800000, 111, 0.29, 0.16, 29/05/1995, 17/09/1995
  22. 1995-09-18, 1996-01-7, 0.0015, 811375200000, 820969200000, 111.04166666666667, 0.27, 0.15, 18/09/1995, 7/01/1996
  23. 1996-01-8, 1997-12-31, 0.0014, 821055600000, 883522800000, 723, 1.66, 0.13999999999999999, 8/01/1996, 31/12/1997
  24. ...


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