I finally found an easy to use solution, I will share it maybe someone need that
This is the full class :
And I accept any other suggestions, or edit.
import android.content.Intent;
import android.widget.Toast;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
public class Time {
public static int getMilisecondsBetween(String date1, String date2){
//long daysNumber = 0;
long diffInMillies = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
Date firstDate = sdf.parse(date1);
Date secondDate = sdf.parse(date2);
diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
// daysNumber = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
} catch (Exception e){
System.out.println(e);
}
return (int) diffInMillies;
}
public static int getDaysNumberBetween(String date1, String date2){
long daysNumber = 0;
long diffInMillies = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
Date firstDate = sdf.parse(date1);
Date secondDate = sdf.parse(date2);
diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
daysNumber = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
} catch (Exception e){
System.out.println(e);
}
return (int) daysNumber;
}
public static int daysFromNowTo(String date){
long daysNumber = 0;
long diffInMillies = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
Date c = Calendar.getInstance().getTime();
String currentDate = sdf.format(c);
Date firstDate = sdf.parse(currentDate);
Date secondDate = sdf.parse(date);
diffInMillies = Math.abs(secondDate.getTime() - firstDate.getTime());
daysNumber = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS);
} catch (Exception e){
System.out.println(e);
}
return (int) daysNumber;
}
public static int milisFromNowTo(String date){
long diffInMillies = 0;
try {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
Date currentDate = Calendar.getInstance().getTime();
Date secondDate = sdf.parse(date);
diffInMillies = Math.abs(secondDate.getTime() - currentDate.getTime());
} catch (Exception e){
System.out.println(e);
}
return (int) diffInMillies;
}
public static int convertToMilis(int time, String cmd){
long milis = 0;
try {
switch (cmd){
case "w" :
milis = time * 604800000;
break;
case "d" :
milis = time * 86400000;
break;
case "h" :
milis = time * 3600000;
break;
case "m" :
milis = time * 60000;
break;
case "s" :
milis = time * 1000;
break;
}
} catch (Exception e){
System.out.println(e);
}
return (int) milis;
}
}
to use it is very easy, example :
to get all milliseconds between two specific dates :
int milis = Time.getMilisecondsBetween("04/02/2022", "10/02/2022");
to get days number between two specific dates :
int daysNumber = Time.getDaysNumberBetween("04/02/2022", "10/02/2022");
to get days number from current date to specific date :
int daysFromToday = Time.daysFromNowTo("10/02/2022");
to get milliseconds count from today to specific date :
int millis = Time.milisFromNowTo("10/02/2022");
convert any time, periode, ...ect to milliseconds :
. w = weeks
. d = days
. h = hours
. m = minutes
. s = seconds
// here 3 days to milliseconds as example
int millis = Time.convertToMilis(3, "d");