package com.cundong.izhihu.util; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Locale; import android.content.Context; import com.cundong.izhihu.R; import com.cundong.izhihu.ZhihuApplication; import com.cundong.izhihu.entity.NewsListEntity.NewsEntity; public class ZhihuUtils { /** * 获取listview item 日期 * * @param dateStr * @return */ public static String getDateTag(Context context, String dateStr) { String currentDate = DateUtils.getCurrentDate(DateUtils.MMDD); String pre = DateUtils.getFormatTime(dateStr, DateUtils.YYYYMMDD, DateUtils.MMDD); Date date = DateUtils.getFormatTimeDate(dateStr, DateUtils.YYYYMMDD, DateUtils.MMDD); String week = DateUtils.getWeekOfDate(date); return currentDate.equals(pre) ? context.getString(R.string.listview_hotnews) : new StringBuilder().append(pre).append(" ").append(week).toString(); } /** * 将 "20141105" 转为 "20141106" * * @param dateStr * @return */ public static String getAddedDate(String dateStr) { Date date = DateUtils.str2Date(dateStr, DateUtils.YYYYMMDD); SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_YEAR, 1); return mSimpleDateFormat.format(cal.getTime()); } /** * 获取昨天的日期 * * @param dateStr * @return */ public static String getBeforeDate(String dateStr) { Date date = DateUtils.str2Date(dateStr, DateUtils.YYYYMMDD); SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat("yyyyMMdd", Locale.getDefault()); Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DAY_OF_YEAR, -1); return mSimpleDateFormat.format(cal.getTime()); } /** * 根据一个图片的url获取其在本机缓存中的存储url * * from: * https://avatars3.githubusercontent.com/u/3348483 * to: * /storage/emulated/0/Android/data/com.cundong.izhihu/cache/f72a0397abad8edbd98a8d2a701464ee.jpg * * @param context * @param imageUrl * @return */ public static String getCacheImgFilePath(Context context, String imageUrl) { return SDCardUtils.getExternalCacheDir(context) + MD5Util.encrypt(imageUrl) + ".bin"; } /** * 为newsList设置已读、未读标示 * * @param newsList */ public static void setReadStatus4NewsList(ArrayList<NewsEntity> newsList) { if (newsList == null || newsList.isEmpty()) return; //已读新闻列表 ArrayList<String> readList = ZhihuApplication.getNewsReadDataSource().getNewsReadList(); int size = newsList.size(); for(int i=0; i<size; i++) { newsList.get(i).is_read = readList.contains(String.valueOf(newsList.get(i).id)); } } /** * 为List中的某一个newsEntity设置已读、未读标示 * * @param newsEntity */ public static void setReadStatus4NewsEntity(ArrayList<NewsEntity> newsList, NewsEntity newsEntity) { if (newsList == null || newsList.isEmpty() || newsEntity == null) return; int size = newsList.size(); for(int i=0; i<size; i++) { if (newsEntity.id == newsList.get(i).id) { newsList.get(i).is_read = true; } } } }