17
17
public class Main {
18
18
19
19
public static void main (String [] args ) {
20
- // Kontrollera om inga argument eller --help anropades
21
20
if (args .length == 0 || (args .length == 1 && args [0 ].equals ("--help" ))) {
22
21
printHelp ();
23
22
return ;
@@ -28,7 +27,6 @@ public static void main(String[] args) {
28
27
boolean sorted = false ;
29
28
int chargingHours = 0 ;
30
29
31
- // 1. Argumenthantering
32
30
for (int i = 0 ; i < args .length ; i ++) {
33
31
switch (args [i ]) {
34
32
case "--zone" -> {
@@ -84,7 +82,6 @@ public static void main(String[] args) {
84
82
}
85
83
}
86
84
87
- // 2. Datahämtning (hämta idag OCH imorgon)
88
85
ElpriserAPI api = new ElpriserAPI (true );
89
86
List <Elpris > priser = new ArrayList <>();
90
87
@@ -96,18 +93,13 @@ public static void main(String[] args) {
96
93
return ;
97
94
}
98
95
99
- // 3. Formatering
100
96
DecimalFormatSymbols symbols = new DecimalFormatSymbols (Locale .forLanguageTag ("sv-SE" ));
101
97
symbols .setDecimalSeparator (',' );
102
98
DecimalFormat df = new DecimalFormat ("#0.00" , symbols );
103
99
104
- // Ny formattering för prislistan (HH-HH)
105
- DateTimeFormatter hourRangeFormatter = DateTimeFormatter .ofPattern ("HH-HH" );
106
- // Formattering för laddningsfönster (HH:mm)
107
100
DateTimeFormatter timeFormatter = DateTimeFormatter .ofPattern ("HH:mm" );
101
+ DateTimeFormatter hourFormatter = DateTimeFormatter .ofPattern ("HH" );
108
102
109
-
110
- // 4. Laddningsoptimering (Sliding Window)
111
103
if (chargingHours > 0 ) {
112
104
if (chargingHours < 2 || chargingHours > 8 ) {
113
105
System .out .println ("Fel: Laddningsfönster måste vara 2h, 4h eller 8h." );
@@ -144,20 +136,17 @@ public static void main(String[] args) {
144
136
double totalCostOre = minSum * 100 ;
145
137
double avgOre = totalCostOre / chargingHours ;
146
138
147
- // OBS: "Påbörja laddning" och "Medelpris" för att matcha testet
148
139
System .out .println ("Påbörja laddning" );
149
140
150
141
System .out .println ("Optimalt laddningsfönster (" + chargingHours + "h):" );
151
142
System .out .println ("Starttid: kl " + start .timeStart ().format (timeFormatter ));
152
143
System .out .println ("Sluttid: kl " + end .timeEnd ().format (timeFormatter ));
153
144
System .out .println ("Total kostnad: " + df .format (totalCostOre ) + " öre" );
154
- System .out .println ("Medelpris: " + df .format (avgOre ) + " öre/kWh " ); // Ändrad från Genomsnitt till Medelpris
145
+ System .out .println ("Medelpris för fönster : " + df .format (avgOre ) + " öre" );
155
146
156
147
return ;
157
148
}
158
149
159
- // 5. Statistik och Prislista
160
-
161
150
List <Double > priserOre = priser .stream ()
162
151
.map (p -> p .sekPerKWh () * 100 )
163
152
.toList ();
@@ -174,12 +163,14 @@ public static void main(String[] args) {
174
163
priserForDisplay .sort (Comparator .comparingDouble (Elpris ::sekPerKWh ).reversed ());
175
164
}
176
165
177
- // Display priser: Använd hourRangeFormatter för att få HH-HH format
178
166
for (Elpris pris : priserForDisplay ) {
179
- // Använd hourRangeFormatter (HH-HH) istället för timeFormatter (HH:mm)
180
- String startEndHours = pris .timeStart ().format (hourRangeFormatter );
167
+ String startHour = pris .timeStart ().format (hourFormatter );
168
+ String endHour = pris .timeEnd ().format (hourFormatter );
169
+
170
+ String timeRange = startHour + "-" + endHour ;
171
+
181
172
double ore = pris .sekPerKWh () * 100 ;
182
- System .out .println (startEndHours + " " + df .format (ore ) + " öre" );
173
+ System .out .println (timeRange + " " + df .format (ore ) + " öre" );
183
174
}
184
175
185
176
System .out .println ("----------------------------------------" );
0 commit comments