Существует ли простой способ сделать это в Java? java.util.Date
класс кажется скорее ограниченным.
Вот мое быстрое и грязное решение для Java:
import java.util.Date;
import javax.management.timer.Timer;
String getRelativeDate(Date date) {
long delta = new Date().getTime() - date.getTime();
if (delta < 1L * Timer.ONE_MINUTE) {
return toSeconds(delta) == 1 ? "one second ago" : toSeconds(delta) + " seconds ago";
}
if (delta < 2L * Timer.ONE_MINUTE) {
return "a minute ago";
}
if (delta < 45L * Timer.ONE_MINUTE) {
return toMinutes(delta) + " minutes ago";
}
if (delta < 90L * Timer.ONE_MINUTE) {
return "an hour ago";
}
if (delta < 24L * Timer.ONE_HOUR) {
return toHours(delta) + " hours ago";
}
if (delta < 48L * Timer.ONE_HOUR) {
return "yesterday";
}
if (delta < 30L * Timer.ONE_DAY) {
return toDays(delta) + " days ago";
}
if (delta < 12L * 4L * Timer.ONE_WEEK) { // a month
long months = toMonths(delta);
return months <= 1 ? "one month ago" : months + " months ago";
}
else {
long years = toYears(delta);
return years <= 1 ? "one year ago" : years + " years ago";
}
}
private long toSeconds(long date) {
return date / 1000L;
}
private long toMinutes(long date) {
return toSeconds(date) / 60L;
}
private long toHours(long date) {
return toMinutes(date) / 60L;
}
private long toDays(long date) {
return toHours(date) / 24L;
}
private long toMonths(long date) {
return toDays(date) / 30L;
}
private long toYears(long date) {
return toMonths(date) / 365L;
}
Используйте метод UITableViewCell
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
Информация здесь .
Будьте осторожны, используя этот метод, так как выбор строки таким способом - это то, что Apple не рекомендует делать для отображения «выбранного» состояния.
Вместо этого рассмотрите возможность настройки. свойство accessoryType
ячейки на что-то вроде UITableViewCellAccessoryCheckmark
.
Обязательно будь осторожен. Я уверен, что у вас есть веская причина, но внимательно посмотрите на документ Apple Human Interface Guidelines. Приложения отклоняются за то, что они не отменили выбор строк таблицы. Я рекомендую вам найти соответствующий раздел HIG и узнать, какие предложения предлагает Apple.
-(void)viewWillAppear:(BOOL)animated {
// assuming you had the table view wired to IBOutlet myTableView
// and that you wanted to select the first item in the first section
[myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
animated:NO
scrollPosition:UITableViewScrollPositionTop];
}
Я использую этот метод, чтобы выбрать один из двух UITableViewCells
, чтобы пользователи знали, в какой ячейке UIDatePicker
под представлением таблицы он будет действовать. Этот метод используется Apple в приложении календаря, когда вы создаете новое событие и устанавливаете даты.