日期相关类以及IO输入输出流


1、一个从来都忽视的小问题:以前学习java都是在eclipse中,一写好程序就直接点击运行(eclipse中,保存文件时就自动编译)。现在看视频中,老师在命令行下进行编译,自己也试了下,直接在命令

行输入javac Test.java报错,很奇怪,后来发现是没有给系统指定文件的位置,所以:编译时应该先指定位置,或转到该目录下,比如文件在D盘,命令行输入D:回车,然后再编译(编译产生的类文件就

放在程序同一目录下)。还有就是,编译时给定文件全名。

2、日期相关类Date、Calendar
1)Calendar类是一个抽象类,它有一些static字段,代表了日历中的一些不同的值,比如YEAR,MONTH等等。如果要获取这些值,自己试验过,有两种方式:1、实例化一个GregorianCalendar类对象

(GregorianCalendar gc = new GregorianCalendar();),GregorianCalendar是Calendar类的子类,并调用get()方法;2、获得Calendar类的一个实例(Calendar c = Calendar.getInstance();),调

用get()方法。
2)Calendar.MONTH代表的是日期中的月份,但需要注意的是,它从0到11分别对应1-12月份,例如,如果7月份用get方法获取,它的值就是6,同样,如果用set方法赋值的话,赋值6就代表7月。
3)Calendar.DAY_OF_WEEK代表的是星期几,它的值是从1-7,分别对应周日到周六。
看了毕向东老师的视频,关于计算两个日期之间的工作日天数(工作日是周一到周五)。大体按思路写了一下如下,不过只写了计算两个固定的日期2011.12.13-2012.2.2,如果动态的给出日期,再加修改

就行。

import java.util.*;
import java.text.*;

//获取2011.12.13-2012.2.2共多少个工作日(工作日为周一到周五)
class CalendarDemo3
{
	public static void main(String[] args) 
	{	
		String[] mons = {"一月","二月","三月","四月",
					"五月","六月","七月","八月",
					"九月","十月","十一月","十二月"};

		String[] weeks = {"","星期日","星期一","星期二","星期三",
						"星期四","星期五","星期六"};

		Calendar c = Calendar.getInstance();

		//2011.12.13-2012.2.2
		int workDays=0;
		c.set(2011,11,13);
		while(true) {
			int year = c.get(Calendar.YEAR);
			int month = c.get(Calendar.MONTH);
			int dayM = c.get(Calendar.DAY_OF_MONTH);
			int dayW = c.get(Calendar.DAY_OF_WEEK);
			if(year == 2012 && month == 1 && dayM == 3) 
				break;
			else {
				if(dayW != 1 && dayW != 7)
					workDays++;
				c.add(Calendar.DAY_OF_MONTH,1);

			}
		}
		System.out.println("c的值是");
		sop(c.get(Calendar.YEAR) + "年");
		sop(mons[c.get(Calendar.MONTH)]);
		sop(c.get(Calendar.DAY_OF_MONTH) + "日");
		sop(weeks[c.get(Calendar.DAY_OF_WEEK)]);
		System.out.println("2011.12.13-2012.2.2共有 " + workDays + " 个工作日。");
	}

	public static void sop(Object obj) {
		System.out.println(obj);
	}
}



3、IO输入输出流:
1)分为两种:字节流和字符流,字符流针对文本类数据,字节流针对除了字符流的其他类别的数据文件。
字符流的输入输出类为:Reader和Writer
字节流的输入输出类为:InputStream和OutputStream
close是关闭流资源,但在关闭之前将刷新一次流对象中的数据。
和flush区别:flush将数据刷到目的地之后,还可以继续使用。
close是刷新后,将流关闭。不可再使用。无论是读文件,还是写文件,当操作完成之后,一定要调用close关闭流资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哪知道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值