package day06; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.Date; import java.util.List; import java.util.Scanner; /** * 要求用户输入若干员工信息,格式为: * name,age,gender,salary,hiredate;name,age,gender,salary,hiredate;.... * 例如: * 张三,25,男,5000,2006-03-16;李四,26,女,6000,2007-12-24;... * 然后将每个员工信息解析成Emp对象。并存入到一个集合中。 * 然后循环集合,输出每一个员工信息(输出使用toString返回的字符串) * 然后输出每个员工的转正仪式日期。 * 转正仪式日期为:入职3个月的当周周五 * * @author Xiloer * */ public class Test09 { public static void main(String[] args) throws ParseException { System.out.println("输入若干员工信息:"); Scanner scan = new Scanner(System.in); String str = scan.nextLine(); /* * String[] split(String regex)方法 * 根据参数regex(regex是一个正则表达式,用来限定分割规则 * 将字符串分割为若干个子字符串 */ String[] arr = str.split(";"); List<Emp> list = new ArrayList<Emp>(); for(int i = 0;i<arr.length;i++) { //创建数组,将员工属性用“,”隔开 String[] arr1 = arr[i].split(","); String name = arr1[0]; //将字符串转换为基本类型。包装类.parse(String str)方法 int age = Integer.parseInt(arr1[1]); String gender = arr1[2]; int salary = Integer.parseInt(arr1[3]); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date hiredate = sdf.parse(arr1[4]); //创建Emp对象 Emp emp = new Emp(name, age, gender, salary, hiredate); list.add(emp); } for(Emp e: list) { System.out.println(e.toString()); } for(int i = 0;i<arr.length;i++) { String[] arr1 = arr[i].split(","); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date hiredate = sdf.parse(arr1[4]); Calendar c = Calendar.getInstance(); //将Date类型转换为Calendar类型 c.setTime(hiredate); c.add(c.MONTH, 3); c.set(c.DAY_OF_WEEK,c.FRIDAY); /* * c.getTime()将Calendar类型转换为Date类型 * sdf.format(c.getTime())将Date类型转换为字符串类型 */ System.out.println(sdf.format(c.getTime())); } } }