Skip to content

Commit

Permalink
Fixed bug on changing dates from CEST to CET + minor enhancements
Browse files Browse the repository at this point in the history
  • Loading branch information
Andrea De Matteis committed Oct 27, 2020
1 parent 2d08133 commit 7b1e3c7
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 29 deletions.
11 changes: 8 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
*.iml
/.idea/
/target/
/out/
.idea
target/
out/

*.config
dependency-reduced-pom.xml

*.json
8 changes: 0 additions & 8 deletions .idea/encodings.xml

This file was deleted.

16 changes: 0 additions & 16 deletions .idea/misc.xml

This file was deleted.

3 changes: 2 additions & 1 deletion src/main/java/net/ddns/andrewnetwork/MainPresenter.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import net.ddns.andrewnetwork.helpers.async.AsyncCall;
import net.ddns.andrewnetwork.helpers.util.Wrapper2;
import net.ddns.andrewnetwork.helpers.util.time.DateUtil;
import net.ddns.andrewnetwork.model.CovidItaData;
import net.ddns.andrewnetwork.model.CovidRegionData;
import rx.Observable;
Expand All @@ -21,7 +22,7 @@ private static void handleAllData(Wrapper2<CovidItaData, List<CovidRegionData>>

Set<Date> datesRegions = covidRegionDataList.stream().map(CovidItaData::getDate).collect(Collectors.toSet());

if (!datesRegions.stream().allMatch(dateRegion -> dateRegion.equals(covidItaData.getDate()))) {
if (!datesRegions.stream().allMatch(dateRegion -> DateUtil.isSameDay(dateRegion, covidItaData.getDate()))) {
throw new IllegalArgumentException("Dates are not equals. You can't put together CovidItaData and CovidRegionData with different days.");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ public static Observable<CovidItaData> getAllItalyDataFrom(Date date) {

for (CovidItaData covidItaData : newData) {
covidItaData = computeVariationsItalyData(covidItaData);

DateUtil.setMidnight(covidItaData.getDate());
emitter.onNext(covidItaData);
}

Expand Down Expand Up @@ -98,6 +100,9 @@ private static void handleAllRegions(String[] regions, Subscriber<? super List<C
for (Date keyDate : keyDates) {
List<CovidRegionData> covidRegionDataList = regionsByDate.get(keyDate);
covidRegionDataList = computeVariationsRegionsData(regions, covidRegionDataList);

covidRegionDataList.forEach(covidRegionData -> covidRegionData.setDate(DateUtil.setMidnight(covidRegionData.getDate())));

emitter.onNext(covidRegionDataList);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Locale;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class DateUtil {
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss";
private static final long DATE_TIME_24 = 24*60*60*1000;
private static final long DATE_TIME_24_CET_TO_CEST = 24*60*60*1000 + 60 * 60 * 1000;

public static Date twoHourAfter(Date date) {
return minutesAfter(date, 120);
Expand Down Expand Up @@ -67,7 +69,8 @@ public static boolean isTomorrowDay(Date date1, Date date2) {
dateCloned1 = DateUtil.setMidnight(dateCloned1);
dateCloned2 = DateUtil.setMidnight(dateCloned2);

return Math.abs(dateCloned1.getTime() - dateCloned2.getTime()) == DATE_TIME_24;
long timeDifference = Math.abs(dateCloned1.getTime() - dateCloned2.getTime());
return timeDifference == DATE_TIME_24 || timeDifference == DATE_TIME_24_CET_TO_CEST;
}

public static boolean isTomorrowDay(Calendar date1, Calendar date2) {
Expand Down

0 comments on commit 7b1e3c7

Please sign in to comment.