Android Java: Datum Tag vergleichen
Wie kann man in Android Java zwei Datum Date Werte gegeneinander
auf das gleiche Tagesdatum vergleichen.
Oder einen Vergleich auf den Tag oder Stunde oder
Minute.
Lösung:
Man erstellt zwei Datums-Variablen vom Typ Calendar.
Dann setzt man die Stunde, Minute, Sekunde und Millisekunde
der Variablen auf 0.
Danach hat man den gleichen Tageswert zur Stunde 0.
Diese kann man mit Datum.equals(Datum2)
vergleichen.
public void create_Table(){
//-------<
create_Table() >--------
//< current Date >
Calendar
today=Calendar.getInstance();
//current_CalendarDay.setTime(today);
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
Date dtToday=today.getTime();
//</ current Date
>
//----< Day-Row
>----
//-< Date >-
Date dtRow= clsHelper.getDate(2018,9,iDay);
if (dtRow.equals(dtToday)
)
{
row.setBackgroundColor(Color.rgb(200, 0, 0));
}
|
Laden der zweiten Variable hier über eine Methode getDate(..)
public class clsHelper {
public static Date getDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
month=month-1 ;//*Months are indexed
on 0
cal.set(year,month,day);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
}
|
Wenn Datum 1 und 2 gleich sind, oder der gleiche Tag
beinhaltet, dann zeige die Zeile auf Rot
public void create_Table(){
//-------<
create_Table() >--------
//< current Date >
//Date today=new Date();
//today=new Date();
Calendar
today=Calendar.getInstance();
//current_CalendarDay.setTime(today);
today.set(Calendar.HOUR_OF_DAY, 0);
today.set(Calendar.MINUTE, 0);
today.set(Calendar.SECOND, 0);
today.set(Calendar.MILLISECOND, 0);
Date dtToday=today.getTime();
//</ current Date
>
TableLayout
tbl=findViewById(R.id.table_main);
//----< @Loop: Days
>----
for (int iDay=1;iDay<=31;iDay++) {
//----< Day-Row
>----
//-< Date >-
Date dtRow= clsHelper.getDate(2018,9,iDay);
//< weekday >
//*as string
SimpleDateFormat
fmtWeekday = new SimpleDateFormat("EE");
String weekday =
fmtWeekday.format(dtRow);
//</ weekday >
//*as weekday_number
Calendar
calendarDay=Calendar.getInstance();
calendarDay.setTime(dtRow);
int NrWeekday=calendarDay.get(Calendar.DAY_OF_WEEK);// fmtWeekdayNr.format(dtRow);
//-</ Date >-
//--< Row >--
TableRow row = new TableRow(this);
if(NrWeekday== Calendar.SATURDAY ||
NrWeekday==Calendar.SUNDAY) {
row.setBackgroundColor(Color.rgb(200, 200, 200));
}
if (dtRow.equals(dtToday)
)
{
row.setBackgroundColor(Color.rgb(200, 0, 0));
}
//< dayNr >
TextView lblDayNr = new TextView(this);
lblDayNr.setText(String.valueOf(iDay)
); //*cast integer to
string
row.addView(lblDayNr);
//</ dayNr >
//--< weekday >--
TextView lblWeekday = new TextView(this);
lblWeekday.setText(weekday);
row.addView(lblWeekday);
//--</ weekday
>--
//--</ Row >--
//< add to table >
tbl.addView(row);
//</ add to table
>
//----</ Day-Row >----
}
//-------</
create_Table() >--------
}
|