77import java .time .LocalDate ;
88import java .time .format .DateTimeFormatter ;
99import java .util .*;
10+ import java .util .stream .Collectors ;
1011
1112
1213//Att göra idag
@@ -137,6 +138,7 @@ public static void main(String[] args) {
137138 skrivUtPriser (priserIdag , priserImorgon );
138139 priceMinMax (priserIdag );
139140 medelPris (priserIdag );
141+ listWith96Prices (priserIdag );
140142
141143
142144 }
@@ -188,6 +190,36 @@ public static void chargingWindow (List<ElpriserAPI.Elpris> elpriserLadda, int t
188190 System .out .printf ("Billigaste laddningsfönster för %dh är kl %s-%s\n Medelpris för fönster: %s öre\n Påbörja laddning %s" , timmar , startTid , slutTid , formateratPris , startTid );
189191 }
190192 }
193+ // Expected Min: Hour 0 -> avg(0.10, 0.11, 0.12, 0.13) = 0.115 SEK/kWh = 11,50 öre
194+ // Expected Max: Hour 23 -> avg(2.40, 2.41, 2.42, 2.43) = 2.415 SEK/kWh = 241,50 öre
195+ public static void listWith96Prices (List <ElpriserAPI .Elpris > elpriser96 ) {
196+ //behöver 24 grupper där varje grupp visar 4 priser som medelpris
197+ //timme = 0, prisindex 1-4, (P1, P2, P3, P4)
198+
199+ //i är 0; sålänge i är mindre än storleken på listan; öka i med 4
200+ for (int i = 0 ; i < elpriser96 .size (); i += 4 ) {
201+ //I varje loop, stoppa de fyra värderna i en sublist
202+ List <ElpriserAPI .Elpris > listaPerTimme = elpriser96 .subList (i , i + 4 );
203+
204+ double sum = listaPerTimme .stream ().mapToDouble (ElpriserAPI .Elpris ::sekPerKWh ).sum ();
205+ double medelPris = sum /4.0 ;
206+
207+ int timme = i /4 ;
208+ int timme2 = timme +1 ;
209+
210+ String timDel = String .format ("%02d-%02d" , timme , timme2 );
211+ //String priserIparantes = listaPerTimme.stream().map(elpris -> numberFormat.format(elpris.sekPerKWh()*100)).collect(Collectors.joining(","));
212+ double medelprisToOre = medelPris * 100 ;
213+ String formateratMedelPris = numberFormat .format (medelprisToOre );
214+
215+ System .out .printf ("%s Medelpris: %s öre\n " , timDel , formateratMedelPris );
216+
217+
218+ }
219+ }
220+
221+
222+
191223 static void printPriser (List <ElpriserAPI .Elpris > priser ) {
192224 priser .stream ().forEach (elpriser -> System .out .printf ("""
193225 %s-%s %.2f öre\n """ ,elpriser .timeStart ().format (timeFormatter ), elpriser .timeEnd ().format (timeFormatter ), elpriser .sekPerKWh ()*100 ));
@@ -202,17 +234,6 @@ public static List<ElpriserAPI.Elpris> isSortedCombined (List<ElpriserAPI.Elpris
202234
203235 return sammansattaPriser ;
204236 }
205- public static void skrivUtSorterad (List <ElpriserAPI .Elpris > elpriser ) {
206- for (ElpriserAPI .Elpris elpris : elpriser ){
207-
208- String startTid = elpris .timeStart ().format (timeFormatter );
209- String slutTid = elpris .timeEnd ().format (timeFormatter );
210- String pris = numberFormat .format (elpris .sekPerKWh ()*100 );
211-
212- System .out .printf ("%s-%s %s öre\n " , startTid , slutTid , pris );
213-
214- }
215- }
216237
217238 public static void skrivUtPriser (List <ElpriserAPI .Elpris > elprisIdag ,List <ElpriserAPI .Elpris > elprisImorgon ) {
218239
@@ -248,7 +269,7 @@ private static void medelPris(List<ElpriserAPI.Elpris> prisLista) {
248269 summa += elpriser .sekPerKWh ();
249270 }
250271 double medelPrisOfDay = summa / prisLista .size ();
251- System .out .printf ("Medelpriser för dagen är : %s öre/KWh \n " , numberFormat .format (medelPrisOfDay *100 ));
272+ System .out .printf ("Medelpris : %s öre \n " , numberFormat .format (medelPrisOfDay *100 ));
252273 }
253274
254275 public static void priceMinMax (List <ElpriserAPI .Elpris > prisLista ) {
0 commit comments