MySQL에서 검색 한 날짜와 현재 날짜/시간을 비교하려고합니다.Android : 날짜 비교
내가 원하는 원하는 효과는 이것이다 :
Date is Recent (Less than an hour) | 0
Date is An Hour Ago (1-2 Hours before now) | 1
Date is Several Hours Ago (2-8 Hours before now) | 2
Date is Yesterday (a day ago) | 3
Date is Recent (More than a day ago) | 4
설명하려면이 방법은 선택으로 0-4 (포함) 사이의 숫자를 반환합니다.
현재 아래 코드가 엉망입니다.하지만 누군가가 더 좋은 방법을 제안 할 수 있습니까?
compareDate 방법 :
private int compareDate(Date date1)
{
long daysAgo = getDaysAgo(date1);
if(daysAgo == 0)
{
//Check the hours
int choice = getMinAgo(date1);
//Code for "Minutes Ago"
if(choice == 0)
{
return 0;
}
//Code for "An Hour Ago"
else if(choice == 1)
{
return 1;
}
//Code for "Several Hours Ago"
else if(choice == 2)
{
return 2;
}
else return -1;
}
else if (daysAgo == 1)
{
//"Code" for "Yesterday" is 3
return 3;
}
else
{
//"Code" for "Several days ago" is 4
return 4;
}
}
getDaysAgo 방법
private long getDaysAgo(Date date)
{
long days = (new Date().getTime() - date.getTime())/DAYS_IN_MILLISEC;
return days;
}
getMinAgo 방법
private int getMinAgo(Date date)
{
long hourAgo = 60;
long twoHourAgo = hourAgo*2;
long eightHourAgo = hourAgo*8;
Date dateHourAgo = new Date(date.getTime() - hourAgo*60*1000);
Date dateTwoHourAgo = new Date(date.getTime() - twoHourAgo*60*1000);
Date dateEightHourAgo = new Date(date.getTime() - eightHourAgo*60*1000);
//Between 0-1 Hours Ago
if(date.before(dateHourAgo))
{
return 0;
}
//Between 1-2 Hours Ago
else if(date.after(dateHourAgo) && date.before(dateTwoHourAgo))
{
return 1;
}
else if(date.after(dateTwoHourAgo) && date.before(dateEightHourAgo))
{
return 2;
}
return -1;
}
내 솔루션을 사용해 보셨습니까? – janzoner
현재 코드에 액세스 할 수 없지만 그렇게 할 때 시도해보고 작동하는지 확인합니다. 만약 그렇다면, 나는 당신의 대답을 받아 들일 것으로 표시 할 것입니다. – SlashTag