一段业务相关的解析代码

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;
	}
}
时间: 2024-08-08 14:10:57

一段业务相关的解析代码的相关文章

哪位大哥给一段vb.net连接mdb数据库及执行相关查询的代码,本人菜鸟,多谢!

问题描述 哪位大哥给一段vb.net连接mdb数据库及执行相关查询的代码,本人菜鸟,多谢! 解决方案 解决方案二:mycon=NewOleDbConnection("provider=microsoft.jet.oledb.4.0;UserID=Admin;datasource="&Application.StartupPath&"你数据库的名称.mdb")mydap=NewOleDbDataAdapter("select*from表名&q

求射频、IC相关知识解析

问题描述 求射频.IC相关知识解析 什么是射频? 射频的频率范围是什么? 射频与无线,wlan,WiFi,蓝牙关系是什么? 移动通信用的都是射频么?手机的GSM,CDMA等也是用的射频技术么? IC/ID 卡用的射频技术么?卡中的线圈是什么作用?有源IC卡有线圈么,它是怎样应用射频技术达到的? 另外射频技术除射频识别外还有哪些方面的应用? 解决方案 这个问题建议你将问题一个一个的去 Google 等查找一下,都会有答案的.

一段ASP防采集的代码

采集 一段ASP防采集的代码<%        '作用:文字防复制乱码 函数        'Date:2006-3-6        '作者:blue2004        '参数str 为原文,str1作者也是你自己,reslut产生乱码的种子        Function ReadToCode(str,Str1,result)                dim name                dim i,j,k                If isnull(str) th

刚学c++的小白,在网上看到一段读写ini文件的代码,想试试结果有错。

问题描述 刚学c++的小白,在网上看到一段读写ini文件的代码,想试试结果有错. #include "stdafx.h" #include #include #include using namespace std; int main() { LPTSTR lpPath= new char[MAX_PATH]; strcpy(lpPath, "D:\IniFileName.ini"); WritePrivateProfileString("LiMing&q

builder-麻烦大家帮我详细解释下下面这段与串口交互的代码,谢谢!

问题描述 麻烦大家帮我详细解释下下面这段与串口交互的代码,谢谢! void __fastcall TfrmPatient::edtDosageDblClick(TObject *Sender) { //read comm data,then set in edtDosage edit //open com port HANDLE hCom = CreateFile(g_ConfigManager.sComPort.c_str(),GENERIC_WRITE,0,NULL,OPEN_EXISTIN

c++-一段关于C++空间分配的代码的疑问

问题描述 一段关于C++空间分配的代码的疑问 代码如下: #include"stdafx.h" class X{ public: X(){} ~X(){printf("end");} }; void f(int i) { if(i<10) { //goto jump1; } X x1; jump1: switch(i){ case 1: X x2; break; //case 2: X x3; break; } } int main() { f(1); ret

xaml-wpf中,我想要将一段XAML转换为C#后台代码,请问如何实现

问题描述 wpf中,我想要将一段XAML转换为C#后台代码,请问如何实现 local:MyToolTipContent//tt:ToolTipBehavior/i:Interaction.Behaviors 解决方案 你的代码挂了~~~~~~~~~~~~ 解决方案二: local:MyToolTipContent//tt:ToolTipBehavior/i:Interaction.Behaviors 解决方案三: <Button Content="执行" Margin="

c++-一段网络的通信的代码,怎么做单元测试?(代码如下)

问题描述 一段网络的通信的代码,怎么做单元测试?(代码如下) 本人使用的是cppunit框架,代码如下: 想对这个Worker函数进行单元测试,说明:Worker是在一个线程中执行的,Connect()是连接到服务器的代码,recv(...)是收取包头,即文件长度,ReceiveOnPackage是获取数据.问题是这段代码要在真实环境测试,那必须开启服务端,感觉这和单元测试要求的代码隔离有所违背(不知道自己说的对不对).如果要模拟服务器端,那应该如何做了?求教,各位大牛,先谢谢了! void T

跪求-谁能帮忙解释下android中的TranslateAnimation相关的下面代码,谢谢!!!

问题描述 谁能帮忙解释下android中的TranslateAnimation相关的下面代码,谢谢!!! @Override10 public void onPageSelected(int arg0) {11 Animation animation = null;12 switch (arg0) {13 case 0:14 if (currIndex == 1) {15 animation = new TranslateAnimation(one 0 0 0);16 } else if (cu