菜鸡自学JAVA坎坷路day.13(WrapperClass,自动装箱与拆箱,测试Date类,Date与String的转换,写一个可视化的日历程序)

本文介绍了Java中包装类的基本使用方法,包括自动装箱与拆箱的过程,并演示了Date类及其相关类的操作技巧,如日期与字符串的相互转换。

1.包装类:(Wrapper Class):


package WraperClass;
/**
 * 测试包装类  测试八种基本类型的其中一个  其他的就改一下方法的名字就ok
 * @author Wang
 *
 */

public class testWrapper {
	public static void main(String[] args) {
		Integer i = new Integer(1000);//这个包装类的作用是把int型的数包装成一个类
		System.out.println(Integer.MAX_VALUE);//输出Integer的最大值
		
		System.out.println(Integer.toHexString(i));//把i转变为16进制
		
		Integer i2 = Integer.parseInt("234");//把字符串“234”转化为int类型
		
		Integer i3 = new Integer("222");//也可以这样转换
		
		System.out.println(i3.intValue());
		
		System.out.println(i2);
		
		String str = 123 + " ";//把整形转化为String类型的
	}
}

2.自动装箱与拆箱:

package WraperClass;
/**
 * 测试拆箱与装箱
 * @author Wang
 *
 */

public class test00 {
	public static void main(String[] args) {
		Integer a= new Integer(1000);//这是正常的赋值方法;
		Integer a1 = 1000; //JDK5.0之后  他会自动装箱,编译器会帮助我们把代码改进为Integer a1= new Integer(1000);
		
		Integer b = 200;
		int c = b;//自动装箱,编译器的改进:b.intValue();
		
		System.out.println(c);
		

		
		Integer  d = 1234;
		Integer  d2 = 1234;//包装成对象了   地址不一样  但是内容是一样的;
		
		System.out.println(d==d2);
		System.out.println(d.equals(d2));
		
		System.out.println("###################"); 
		Integer d3 = -100;    //[-128,127]之间的数,仍然当做基本数据类型来处理。
		Integer d4 = -100;
		System.out.println(d3==d4);
		System.out.println(d3.equals(d4));
	}
}

3.测试Date类:

package TestDate;

import java.util.Date;

/**
 * 测试Date类的用法
 * @author Wang
 *
 */

public class TestDate01 {
	public static void main(String[] args) {
		Date d = new Date();//这个会把现在的时间给d
		long t = System.currentTimeMillis();//这个是把当前时间转变为长整形给T
		System.out.println(t);
		Date d2 = new Date(100);//将时间设置为100给d2
		
		System.out.println(d2.toGMTString());   //带横线的意思是不建议使用    GTM是指国际标准时间;
		d2.setTime(24324324);//将d2重新设置一下
		System.out.println(d2.getTime());//得到这个时间;
		System.out.println(d.getTime()<d2.getTime());//比较他们
	}
	
}

4.Date和String的转换;

package TestDate;

import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 * 测试时间和字符串的转化问题
 * DateFormat  and  SimpleDateFormat
 * @author HP
 *
 */

public class TestDate02 {
	public static void main(String[] args) throws ParseException {
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm;ss");//因为DateFormat是抽象类  所以他没法建立对象所以用它的子类建立个对象  括号里是格式化
		SimpleDateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");//也可以这样建立
		
		Date D = new Date(132112311321321L);
		String str = df.format(D);//将字符串D转变为d格式的日期类型;
		
		String str1 = df2.format(D);//转化为d2格式的日期;
		
		System.out.println(str);
		System.out.println(str1);
		
		System.out.println("**********************");//字符串转日期
		
		String str3 = "1997-9-29 23:11:11";//str3和df3需要保持同样的格式
		DateFormat df3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		
	    Date D1 = df3.parse(str3);//这里需要抛出一个异常  你可以看源码
	    System.out.println(D1);
		
	}
}

5.Calendar类  :注意这个星期是按照周日是第一天是1不是0,一月是0以此类推;

package TestCalendar;

import java.util.Date;
import java.util.Calendar;//他是一个abstract类
import java.util.GregorianCalendar;//这是他的一个子类  公历

/**
 * 测试日历类
 * @author Wang
 *
 */

public class TestCalender {
	public static void main(String[] args) {
		Calendar c = new GregorianCalendar();
		Calendar d = new GregorianCalendar();
		
		c.set(2001, Calendar.FEBRUARY, 10, 12, 23, 34);
		
		d.set(Calendar.YEAR, 2001);	//单个是指第一个参数选择设置什么
		d.set(Calendar.MONTH, 1);   //二月
		d.set(Calendar.DATE, 10);
		
		Date e = c.getTime();//将c存放在e中
		System.out.println(e);
			
		System.out.println(d.get(Calendar.YEAR));//输出d的year
		
		System.out.println("**********************");
		c.add(Calendar.MONTH, -30);//测试日历类的计算   第一个参数是选择年月日;
		System.out.println(c);
		
	}
}

6.写一个可视化日历:

package TestCalendar;

import java.util.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;

/**
 * 写一个可视化日历
 * @author Wang
 *
 */


public class VisualCalendar {
	public static void main(String[] args) throws ParseException {
		int j=0;
		System.out.println("请输入你要查找的日期(格式为:2018-5-21)");
		Scanner scanner = new Scanner(System.in);//创建一个输入对象
		String temp = scanner.nextLine();//用temp这个字符来接收你输入的那一行
		System.out.println("日\t一\t二\t三\t四\t五\t六");
		
		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		Calendar c = new GregorianCalendar();
		
		Date D = df.parse(temp);//将你输入的那个字符串装变为日期类型的     字符串转化为日期类型需要抛异常;
		c.setTime(D);//将日历类设置成字符串转化过来的时间
		int  day = c.get(Calendar.DATE);//得到你输入的那一天是这个月的第几天  做一个特殊标记
		c.set(Calendar.DATE, 1);//将转化过来的时间设置成本月的一号  接下来判断这月的一号是周几;
		int  w = c.get(Calendar.DAY_OF_WEEK);//判断是周几 周五的话这个数是六  前面打印五个\t
		int maxDay = c.getActualMaximum(Calendar.DATE);//判断这一月的最大天数是几就打印到这一天
		
		for(int i=0;i<w-1;i++) {
			System.out.print("\t");
		}
		
		for(int i=1;i<=maxDay;i++) {
			if(i==day) {
				System.out.print("*");
			}
			System.out.print(i+"\t");
			j++;
			if(c.get(Calendar.DAY_OF_WEEK) == 7) {//判断他是不是周六如果是周六  那么就换行
				System.out.println();
			}
			c.add(Calendar.DATE, 1);
			
		}
		
		
		
		
	}

}

效果如下图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值