有关于java中SimpleDateFormat和ArrayList<String>的例子

6、写一个发牌代码,三个人玩,斗地主,注意底牌留三张

public static void main(String[] argc)
	{	
		ArrayList<String> U1=new ArrayList<String>();	
		ArrayList<String> U2=new ArrayList<String>();
		ArrayList<String> U3=new ArrayList<String>();
		ArrayList<String> dipai=new ArrayList<String>();
		dipai=faPai(allPai(),U1,U2,U3);
		System.out.println("玩家1的牌:"+U1);
		System.out.println("玩家2的牌:"+U2);
		System.out.println("玩家3的牌:"+U3);
		System.out.println("底牌:"+dipai);
	}
	public static ArrayList<String> faPai(ArrayList<String>pai,ArrayList<String>U1,ArrayList<String>U2,ArrayList<String>U3)
	{
		Collections.shuffle(pai);
		for(int i=0;i<51;i++)
		{
			if(i%3==0) {
				U1.add(pai.get(i));
			}
			else if(i%3==1) {
				U2.add(pai.get(i));
			}
			else
			{
				U3.add(pai.get(i));
			}
		}
		ArrayList<String> dipai=new ArrayList<String>();
		dipai.add(pai.get(51));
		dipai.add(pai.get(52));
		dipai.add(pai.get(53));
		return dipai;
		
	}
	public static ArrayList<String> allPai()
	{
		ArrayList<String> list=new ArrayList<String>();
		list.add("大王");
		list.add("小王");
		ArrayList<String> color=new ArrayList<String>();
		color.add("黑桃");
		color.add("红桃");
		color.add("方块");
		color.add("梅花");
		//ArrayList<Integer> number=new ArrayList<Integer>();
		ArrayList<String> letter=new ArrayList<String>();
		for(int i=2;i<11;i++)
		{
			letter.add(i+"");
		}
		letter.add("J");
		letter.add("Q");
		letter.add("K");
		letter.add("A");
		//集合的循环
		for(String s:color)
		{
			for(String ss:letter)
			{
				list.add(s+ss);
			}
		}
		System.out.println(list);
		return list;
	}

5、首先初始化一个Hero集合,里面放100个Hero对象,名称分别是从
hero 0
hero 1
hero 2

hero 99.
通过遍历的手段,删除掉名字编号是8的倍数的对象

public static void main(String[] argc)
	{	
		ArrayList<String> list =new ArrayList<String>();
		for(int i=0;i<100;i++) {
			//list.add("hero"+i);
			if(i%8!=0)
			{
				list.add("hero"+i);
				
			}	
		}
		System.out.println(list);
		//ArrayList<Integer> list =new ArrayList<Integer>();
	}

4.首先初始化一个List,长度是10,值是0-9。然后不断的shuffle,直到前3位出现3 1 4
shuffle 1000,000 次,统计出现的概率

public static void main(String[] argc)
	{
		int num=0;
		for(int j=0;j<1000000;j++)
		{
			ArrayList<Integer> list =new ArrayList<Integer>();
			for(int i=0;i<10;i++)
			{
				int random=(int)(Math.random()*10);
				list.add(i, random);
			}
			//System.out.println(list);
			//System.out.println(list.get(1));
			if(list.get(0)==3&&list.get(1)==1||list.get(2)==4)
			{
				num++;
			}
		}
		System.out.println(num);
		NumberFormat number=NumberFormat.getInstance();
		number.setMaximumFractionDigits(6);
		String result =number.format((float)num/(float)1000000);
		System.out.println(result);
	}

*3、找出下个月的倒数第3天是哪天

public static void main(String[] argc)
	{	//转换格式	
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		//转换为日历
		Calendar cd=Calendar.getInstance();
		int year=cd.get(Calendar.YEAR);
		//当前月份要加1
		int month=cd.get(Calendar.MONTH)+1;
		System.out.println(year);
		System.out.println(month);
		cd.set(Calendar.YEAR,year);
		cd.set(Calendar.MONTH,month+1);
		//cd==现在的日期,求倒数第三天,一定要有cd.set(Calendar.DAY_OF_MONTH,1);
		cd.set(Calendar.DAY_OF_MONTH,1);
		cd.add(Calendar.DAY_OF_MONTH,-3);//注意为add
		//String s1=sdf.format(cd.)
		System.out.println(sdf.format(cd.getTime()));
		
	}

2.准备一个长度是9的日期数组
使用1970年-2000年之间的随机日期初始化该数组,按照这些日期的时间进行升序排序
比如 1988-1-21 12:33:22 就会排在 1978-4-21 19:07:23 前面,因为它的时间更小,虽然日期更大

public static void main(String[] argc)
	{
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss");
		//
		String[] array=new String[9];
		Date[] dateArray=new Date[9];
		Date[] getArray=new Date[9];
		System.out.println("得到随机数组日期:");
		for(int i=0;i<dateArray.length;i++)
		{
			//年
			int y=(int)(Math.random()*30+1970);//
			//月
			int M=(int)(Math.random()*12+1);//M在[1,12]中
			//日
			int d=0;
			if(M==2)
			{
				d=(int)(Math.random()*29+1);
			}
			else if(M==4||M==6||M==9||M==11)
			{
				d=(int)(Math.random()*30+1);
			}
			else
			{
				d=(int)(Math.random()*31+1);
			}
			//小时
			int H=(int)(Math.random()*24+1);
			//分钟
			int m=(int)(Math.random()*60+1);
			//秒
			int s=(int)(Math.random()*60+1);
			GregorianCalendar date=new GregorianCalendar(y,M,d,H,m,s);
			GregorianCalendar datee=new GregorianCalendar(y,M,d);
			Date date0=new Date();
			date0=date.getTime();
			Date date1=datee.getTime();
			String str1=sdf.format(date0);
			array[i]=str1;
			dateArray[i]=date0;
			getArray[i]=date1;
		  //System.out.println(array[i]);
		  //System.out.println(dateArray[i]);
		  //System.out.println(getArray[i]);
		  //getArray[i]得到 的数组如下,时间为零;
		    //Thu Jan 05 00:00:00 CST 1995
			//Tue Oct 02 00:00:00 CST 1973
			//Sat Jul 27 00:00:00 CST 1996
			//Tue Oct 02 00:00:00 CST 1990
			//Wed Mar 03 00:00:00 CST 1993
			//Tue Jan 17 00:00:00 CST 1989
			//Sat Oct 09 00:00:00 CST 1976
			//Wed Aug 21 00:00:00 CST 1996
			//Fri Dec 09 00:00:00 CST 1983
		}
		long[] a=new long[9];//毫秒相减存于数组a中
		for(int i=0;i<array.length;i++)
		{
			a[i]=dateArray[i].getTime()-getArray[i].getTime();	
			//System.out.println(a[i]);
		}
		//冒泡排序
		for(int i=0;i<a.length-1;i++)
		{
			for(int j=0;j<a.length-1-i;j++)
			{
				if(a[j]>a[j+1])
				{
					long temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
					String tempp=array[j];
					array[j]=array[j+1];
					array[j+1]=tempp;	
				}
			}
		}
		System.out.println("排序后的时间为");
		for(int i=0;i<a.length;i++)
		{
			System.out.println(array[i]);
			
		}
	}

1.借助随机数,创建一个从1995.1.1 00:00:00 到 1995.12.31 23:59:59 之间的随机日期


public static void main(String[] argc)
	{
		//月
		int M=(int)(Math.random()*12+1);//M在[1,12]中
		//System.out.println(M);
		//日
		int d=0;
		if(M==2)
		{
			d=(int)(Math.random()*29+1);
		}
		else if(M==4||M==6||M==9||M==11)
		{
			d=(int)(Math.random()*30+1);
		}
		else
		{
			d=(int)(Math.random()*31+1);
		}
		//小时
		int H=(int)(Math.random()*24+1);
		//分钟
		int m=(int)(Math.random()*60+1);
		//秒
		int s=(int)(Math.random()*60+1);
		System.out.println("1995."+M+"."+d+" "+H+":"+m+":"+s);	
	}	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值