一段業務相關的解析代碼
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; public class TestPid { public static void main(String[] args) { StringBuilder str = new StringBuilder(); str.append("252063002-41604,2014/04/08 00:00:00\\|"); str.append("252063003-41609,2014/04/09 00:00:00\\|"); str.append("252063004-41614,2014/04/10 00:00:00\\|"); str.append("251941028-41491,2014/04/04 00:00:00\\|"); str.append("251830039-41486,2014/04/05 00:00:00\\|"); str.append("252072008-41599,2014/04/07 00:00:00\\|"); str.append("251830040-41481,2014/04/06 00:00:00\\|"); System.out.println(str.toString()); //StringUtil String[] strarray = str.toString().split("\\|"); System.out.println(strarray.length); if (strarray.length != 7) { System.out.println("長度不為7,拒絕入庫"); } else { Map<String, String> promMap = new HashMap<String, String>(); for (int i = 0; i < strarray.length; i++) { String field = strarray[i]; String str_time = getSplitDay(field); String str_key = getFormatDay(str_time); String str_value = getSplitPromId(field); // System.out.println(field); System.out.println("str_time:" + str_time); System.out.println("str_key:" + str_key); System.out.println("str_value:" + str_value); promMap.put(str_key, str_value); // promMap.put(key, value); System.out.println("week:" + getDayofweek(str_key)); } Iterator iter = promMap.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); System.out.println("key:" + key); System.out.println("val:" + val); long differ = dateDiffer(key.toString()); System.out.println("dateDiffer:"+differ); if(differ>=0&&differ<=6) { System.out.println("執行入庫操作"); } else { System.out.println("不執行入庫操作"); } } System.out.println("hashmap.size=" + promMap.size()); } } /* * public static void main(String[] args) { String * str="252063002-41604,2014/04/08 00:00:00\\|"; * * String str_time=getSplitDay(str); String str_key=getFormatDay(str_time); * System.out.println("str_time:"+str_time); * System.out.println("str_key:"+str_key); * * String str_value=getSplitPromId(str); * System.out.println("str_value:"+str_value); } */ private static String getSplitDay(String field) { int startIndex = field.indexOf(",") + 1; int endIndex = field.indexOf("\\"); return field.substring(startIndex, endIndex); } /*** * 獲取PromId * * @param field * @return */ private static String getSplitPromId(String field) { int startIndex = 0; int endIndex = field.indexOf("-"); return field.substring(startIndex, endIndex); } /*** * 獲得日期鍵值Key * * @param field * @return */ private static String getFormatDay(String field) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date date = null; try { date = sdf.parse(field); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } return sdf.format(date); } /*** * 周一到周日對應的時間分別是1,2,3,4,5,6,0 * * @param date * @return */ public static int getDayofweek(String date) { Calendar cal = Calendar.getInstance(); // cal.setTime(new Date(System.currentTimeMillis())); if (date.equals("")) { cal.setTime(new Date(System.currentTimeMillis())); } else { cal.setTime(new Date(getDateByStr2(date).getTime())); } return cal.get(Calendar.DAY_OF_WEEK) - 1; } public static Date getDateByStr2(String dd) { SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd"); Date date; try { date = sd.parse(dd); } catch (ParseException e) { date = null; e.printStackTrace(); } return date; } public static long dateDiffer(String key) { SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); Date d1 = null; long diffDays = 0; try { d1 = format.parse(key); // 毫秒ms long diff = d1.getTime()-new Date(System.currentTimeMillis()).getTime(); diffDays = diff / (24 * 60 * 60 * 1000); System.out.print("兩個時間相差:"); System.out.print(diffDays + " 天, "); } catch (Exception e) { e.printStackTrace(); } return diffDays; } }
最後更新:2017-04-03 12:56:25
上一篇:
最長公共子序列-jobdu-1402(附帶打印)
下一篇:
C讀寫配置文件
項目4:抽獎程序 分時間段(按時段設置的獎品數為概率)
virtualbox如何共享文件
VS2010無法打開包括文件:“iostream.h”問題
帶高級搜索、書簽功能、文件菜單等功能的Hibernate 3.2 Spring 2.0的chm格式Reference
Android實現兩次按下返回鍵退出
【雲棲大會】阿裏巴巴積極擁抱開源 正式開源全球化OpenMessaging和ApsaraCache項目
在64位機器上使用plSQL連接Oracle的問題(SQL*Net not properly installed)
如何應用OSS的內網地址
RDS SQL Server - 專題分享 - 巧用執行計劃緩存之執行計劃編譯
C 十字鏈表