diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java index 5d80390d37b455811231c6c7fdd3131093891fce..b2570012030dcd703117f52fe8001889c49ad0ac 100644 --- a/src/main/java/com/application/GUI/LineChartFunctionality.java +++ b/src/main/java/com/application/GUI/LineChartFunctionality.java @@ -1,11 +1,13 @@ package com.application.GUI; -import com.application.DB.DB; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; +import javafx.scene.shape.Line; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.Map; public class LineChartFunctionality { @@ -42,6 +44,27 @@ public class LineChartFunctionality { lineChart.getData().clear(); } + private static long findDifference(String start_date, String end_date) { + // Defining a simple date format + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + try{ + // try to convert the string to Date datatype + Date dateStart = dateFormat.parse(start_date); + Date dateEnd = dateFormat.parse(end_date); + + // Finds the difference in millis + long differenceMillis = dateEnd.getTime() - dateStart.getTime(); + + // Finds the difference in minutes + return (differenceMillis / (1000 * 60 )) % 60; + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + return 0; + } + public static LineChart<String, Number> loadSingleSeries(Map<Integer, Map<String, Number>> userInput) throws Exception { clearLineChart(); @@ -54,20 +77,34 @@ public class LineChartFunctionality { Map data = entryKwh.getValue(); //System.out.println(data.size()); XYChart.Series<String, Number> newSeries = new XYChart.Series<String, Number>(); - int index = 0; + long minutes = 0; + long hours; + String previouseDate = ""; for (Object entryData : data.entrySet()) { //System.out.println("data: \t"+entryData); String entryString = entryData.toString(); String[] arr = entryString.split("="); - String date = arr[0]; + String currentDate = arr[0]; int kwhValue = Integer.parseInt(arr[1]); + + //System.out.printf("previouse date: \t%s\n",previouseDate); + //System.out.printf("Current date: \t\t%s\n",currentDate); + //System.out.printf("is prev empty?: \t%s\n",previouseDate.isEmpty()); + + + minutes += findDifference(previouseDate, currentDate); + + hours = (minutes/60); + System.out.println(hours); + previouseDate = currentDate; + //System.out.printf("Date: \t%s\t\t\tkWh: \t%s\n",date,kwhValue); + //System.out.printf("Hours: \t\t%s\n",hours); // Connect the data to a series - newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(index), kwhValue)); - index += 1; + newSeries.getData().add(new XYChart.Data<String, Number>(String.valueOf(hours), kwhValue)); } updateLineChart(newSeries); } diff --git a/src/main/java/com/application/Main.java b/src/main/java/com/application/Main.java index 51c2313ff49887a6528ea41043970381987def2d..c7af669e7be403990687a4f5aea558c9094125fa 100644 --- a/src/main/java/com/application/Main.java +++ b/src/main/java/com/application/Main.java @@ -85,7 +85,7 @@ public class Main extends Application { this.sideBar = createSideBar(); this.logoBar = createLogoBar(); - LineChart<String, Number> lineChart = this.lineChartFunctionality.getLineChart(); + LineChart<String, Number> lineChart = LineChartFunctionality.getLineChart(); //Set id's to connect to css stylesheet root.setId("root"); diff --git a/target/classes/com/application/DB/Constants.class b/target/classes/com/application/DB/Constants.class index 091a895c5cc5d2a74b30a21bae9762ebf5626ea0..935d57ead8c7405cef6220d66de39651a4d10b64 100644 Binary files a/target/classes/com/application/DB/Constants.class and b/target/classes/com/application/DB/Constants.class differ diff --git a/target/classes/com/application/Main.class b/target/classes/com/application/Main.class index d2bf5a43d4db88a06915f89a71f9d0b69159cbad..edc2049c922de5c72aaf6cb05f0b0082c79796d3 100644 Binary files a/target/classes/com/application/Main.class and b/target/classes/com/application/Main.class differ