From 897b8e5bba42be4f0f3e3d9da92d2219a6e6af6e Mon Sep 17 00:00:00 2001
From: Eilert Tunheim <emtunhei@stud.ntnu.no>
Date: Fri, 8 Apr 2022 16:34:41 +0200
Subject: [PATCH] started converting the x-axis to hours

---
 .../GUI/LineChartFunctionality.java           |  47 ++++++++++++++++--
 src/main/java/com/application/Main.java       |   2 +-
 .../com/application/DB/Constants.class        | Bin 5208 -> 6026 bytes
 target/classes/com/application/Main.class     | Bin 8195 -> 8190 bytes
 4 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/application/GUI/LineChartFunctionality.java b/src/main/java/com/application/GUI/LineChartFunctionality.java
index 5d80390..b257001 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 51c2313..c7af669 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
GIT binary patch
literal 6026
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
a7z`P_7%UmG8T=V~7{VAB8T!GM+XMjfhLvOh

delta 2278
zcmeCuzoAio>ff$?3=9k=45zplj2W8P8Jf8mm_T$37egyU8y5o$Lpw;M1H|eC5nUV%
z-5`-35T}=ep$|m&b1+QcV3^3kFo}a<G6%yH4u+{54AVFmrgJi|FwEd$n8`4UgJCuY
z!yFEVxf~4hI2h)0Ff8C=U<qSb2-3a?L@efDSi-@ul!IXz2g7oZz7-q{D>)ceaWSlB
zSi{AzmSG);wH_q1frDWqh~5MuHiL*QAYv<s*v8JVed5P{#vPLz86Qu+$`mu%n|YHw
zzhjV>qn~@cx2KP%U%aOaBLfdq#K+UuGi0(Ri?b+9O_-xksB65Z3o`=)gYf2NmQY51
z&fv`Syu^~yqEtqPE)C7ejBIj~b69gWr?Ty2WK~X2EeV^vo<ni+S`OvOuQ-Y(S97{g
zzRju09LEqpnVrknft_I|55q2o-8>Ar3~4+Jdl>feFjRn8g$!wo44h$!Ik~ANnaRaG
z4Eq@N^DvZvM47$IGk6%vKum?nG2F6~r*I|8vU_LdWafFg@G!VDShF)60GWD_k%84G
zGdHtjG6%OkZxzVcY7kM&kTyAzJ1RPy!J3hQGblANCoD0iG?kG-xU#acQrFj4Hzh^E
z!^0{!*Q&Ufo#7A<!(oOa><mYF7>+R<=V3U(aFU0?gu#@Nfq{p?jKP$L!5l<bfCx(v
zVZ~rQ*`G&GNH8n0EKxrvF)v-;Gp{5yJ+)|aHP2ecdIm!V76xMm1_nh2NsvJd3=Etg
zgTS;ogDIG{fYO#w+KR!Nfq_Ai!G^(<fsw(Mfq{XE!Hz+a!Jfey&UavtWN<{1=Vy>)
za6;k>Fi0{uGt?st5M+>Ka6wWa#30Gwio_RTkYsQ};)^nHg2ET<5Dz4aJsBh!ypYsM
zGe|OcBk^SzBpG~Q{CWl^1~~>v245rt{1_w|{E_$p43Z3iFbxb$3`z`=3_(bIWd=!x
zU?e`sBOyq9kVit1_$myN3}H}yJt*i@88{ijp+OpfWHHDmkx+#ob?OX~3{gmYkWZqK
z_#ltOAnA`~;AUWAh+~LnU}Q*OU|=w2U}RuqU|?X?+RnhZ5gcpUi3|)3pn?LFepndz
z7?K!3EU+quWQG)Q^rteUF)%SCOujB)<_l6U#K6M9z!1j3!4S?M$`HYz%n%9J$H5@W
zkj{|7z`&3RH3=e;#lXOj4Yo3efeVzuz$QisS|gbl$H2i5&mh5&z@Wj9h-9J?Lmrxm
zAd!5yi3JRt424iPJ`&W8M7S}PfrBB9L69MxL5d**$wUzh6G0+Ha1)CexIp<E<VFSt
zh6N1F;BfPp%q1!}xlKs0eiMWE4hD&B4D8`rLXv{aFJPPv3=9m+3?TcJ7&sUh7;+dm
z7;+f|8S)sU81fmE844J57z!CI8HyO(7>beH<G@gg=0lJOs(Z>HK4f5EXsm}i$Z$6U
zQ{;9AW^XMaDIsZyb7X{MAPiX{IS4~ez!=kgQVeVi3=HKA91Il<f((@mQVdlL$_&*E
z`V2Kl?$Tr^M{^fQq(}rMpei5^oBT%@IWij=I2f83Bp8|*G#FZtj8tN%L^Bd3f*P4s
zP!n53kR!8$frFuwL6D(~L5iUp$wW}pp(Z$x2x{O}Lrg@AO#S*z3~I2j!5fkN3>*v-
z7z7z6GDtB@Vo+w7%%H<Cg~5_xDuWxtG$gk;Fw~&=4kUu=mRh)5ut%giB-*e=q%h2}
zh=c}-$XN^=46_*o8RjrZG0bI9W|+sI&oCd!U78GaXzl`u6xAa|BnLx1yrf8BU}69P
z10jta44OL_w6-y5Z)VUD(%sCU2O{)AgaL>!WZBGM#Icz{TtH|ugBqw%VMI#*f((2N
mA`HR|q6`uYVhpkj;tWa*QVePgIt*G29t?~O><!=|p%DO4*h=XD

diff --git a/target/classes/com/application/Main.class b/target/classes/com/application/Main.class
index d2bf5a43d4db88a06915f89a71f9d0b69159cbad..edc2049c922de5c72aaf6cb05f0b0082c79796d3 100644
GIT binary patch
delta 201
zcmZp6_-DUisyOFi26hHE1_p+gljn&mOg=3Bs$PX5nn8;phQXL2mcfQ0j=_~7p23?T
znIWDbjUj^}ouQZ^i=mn!o1vK@hoOTZk6{u+A;ThuB8Hs|B@Fu+N*RtYlrfxUC}+6D
zP{DA6p_1VaLk+`yhB}594D}4N7#JArAoelLW|+eO0xubsGpt}>WZ+<U$gq;3LyLil
yL51Nc!zzZ=49pDi3|$Os7<w337#1<OGpuD;$H2<4o`HdZhk=nnWpkM1S~dVoY%rz(

delta 207
zcmexo-|VnqsyOEf26hHE1_p+Aljn&muxf2#5DK5XPyAKACPOrXK0^$H1w$-@BSRd6
z7ehQl07EiE3PT!0E<-v)1w$4?14A}L2SW}+FGC)~bcRBP<qSm(`xr_XjxdxmoMb3t
zxWG`(aGjxo;VwfZ!$XD|h9?Yl3~w3g8D=psFxWwCWthz{hXDlMF)U|T!NADC!SIY>
zB}0c60~3QL!%>D+467NK8B!R!7}hZKFt9KzXK-g&%dn1tm0>*t0|O5OBZKDVK*_ai
E0H*aahyVZp

-- 
GitLab