java.util.Calendar
package uncommitted;
import java.util.Calendar;
public class CalendarDemo1 {
public static void main(String[] args) {
// Calendar
System.out.println();
method1();
}
public static void method5(int year) {
// 通过Calendar的add偏移字段,算出任意一年的2月有多少天!
Calendar c=Calendar.getInstance();
showDateTime(c);
//月份是从0算起的,2代表现实3月份
//设置日期为某一年的3月1日!
c.set(year, 2, 1);
showDateTime(c);
//将天数往前推1天即可!
c.add(Calendar.DAY_OF_MONTH, -1);
showDateTime(c);
}
public static void method4() {
// 通过Calendar的add偏移字段,算出任意一年的2月有多少天!
Calendar c=Calendar.getInstance();
showDateTime(c);
c.set(Calendar.YEAR, 2012);
c.set(Calendar.MONTH, 2);//月份是从0算起的,2代表现实3月份
c.set(Calendar.DAY_OF_MONTH, 1);//3月1号
c.add(Calendar.DAY_OF_MONTH, -1);//减去1天,就是2月XX日了!
showDateTime(c);
}
public static void method3() {
// Calendar通过set,设置日期,add偏移字段
Calendar c=Calendar.getInstance();
showDateTime(c);
c.set(Calendar.YEAR, 2013);
//月份增加9个月
c.add(Calendar.MONTH, 9);
showDateTime(c);
}
//自定义方法: 显示日期时间
public static void showDateTime(Calendar c) {
// Calendar通过get(字段),得到日期时间值,并显示!
// Calendar c=Calendar.getInstance();
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH);//0~11月
int day=c.get(Calendar.DAY_OF_MONTH);
int week=c.get(Calendar.DAY_OF_WEEK);
int hour=c.get(Calendar.HOUR_OF_DAY);
int minute=c.get(Calendar.MINUTE);
int second=c.get(Calendar.SECOND);
String week_str=toChineseWeek(week);
int CMonth=month+1;
sop(year+"年"+CMonth+"月"+day+"日"+week_str+","+hour+"时"+minute+"分"+second+"秒");
}
//自定义方法: 显示中文的星期!
public static String toChineseWeek(int i) {
if(i>7||i<0){
return "wrong number";
}
//老外从周日开始算第1天,所以周1就变成了第2天
String[] arr={"","星期日","星期1","星期2","星期3","星期4","星期5","星期6"};
return arr[i];
}
public static void method1() {
Calendar c=Calendar.getInstance();
sop(c+"");//一大串信息
sop(c.get(Calendar.YEAR)+"");
//2013
sop(c.get(Calendar.MONTH)+"");
//0,代表的是1月....11代表12月
sop(c.get(Calendar.DAY_OF_MONTH)+"");
//31日
sop(c.get(Calendar.DAY_OF_WEEK)+"");
//3,老外从周日开始算1,所以周1就变成了2,周2就变成了3
sop(c.get(Calendar.HOUR_OF_DAY)+"");//13点
sop(c.get(Calendar.MINUTE)+"");//8分
sop(c.get(Calendar.SECOND)+"");//22秒
//开始连接成字符串!
StringBuilder sb=new StringBuilder();
sb.append(c.get(Calendar.YEAR));
sb.append(c.get(Calendar.MONTH));
sb.append(c.get(Calendar.DAY_OF_MONTH));
sb.append(c.get(Calendar.HOUR_OF_DAY));
sb.append(c.get(Calendar.MINUTE));
sb.append(c.get(Calendar.SECOND));
sop(sb.toString());
//20131131 13822
}
//自定义方法:打印输出
public static void sop(String str) {
System.out.println(str);
}
}
/*java.util.GregorianCalendar
* [time=1167588947375,
* areFieldsSet=true,
* areAllFieldsSet=true,
* lenient=true,
zone=sun.util.calendar.ZoneInfo
[id="Asia/Shanghai",
offset=28800000,dstSavings=0,
useDaylight=false,
transitions=19,lastRule=null],
firstDayOfWeek=1,
minimalDaysInFirstWeek=1,ERA=1,
YEAR=2007,MONTH=0,
WEEK_OF_YEAR=1,
WEEK_OF_MONT
H=1,DAY_OF_MONTH=1,
DAY_OF_YEAR=1,DAY_OF_WEEK=2,
DAY_OF_WEEK_IN_MONTH=1,
AM_PM=0,HO
UR=2,HOUR_OF_DAY=2,MINUTE=15,
SECOND=47,MILLISECOND=375,
ZONE_OFFSET=28800000,DST_
OFFSET=0]*/
java.util.Date
package uncommitted;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.junit.Test;
public class DateDemo1 {
//方法10:求两个日期的间隔的天数~
@Test
public void method10() throws ParseException {
// 2012-3-17到2012-4-6之间有多少天?
String s1="2012-3-17";
String s2="2012-4-6";
DateFormat d=DateFormat.getDateInstance();
// d=new SimpleDateFormat("yyyy-MM-dd");两个都可以,千万注意大小写
Date d1=d.parse(s1);
Date d2=d.parse(s2);
Long l1=Math.abs(d1.getTime()-d2.getTime());
sop(l1/1000/60/60/24+"");//20天!
}
//方法9:字符串 转 日期对象~
@Test
public void method9() throws ParseException {
String s1="2007年08月07日 星期一,北京时间01:56:15";
DateFormat d=DateFormat.getDateInstance();
d=new SimpleDateFormat("yyyy年MM月dd日 E,北京时间hh:mm:ss");
Date d1=d.parse(s1);
sop(d1+"");//Tue Aug 07 01:56:15 CST 2007
}
//方法8: 字符串 转 日期对象
@Test
public void method8() throws ParseException {
String s1="2013-07-19";
DateFormat d=DateFormat.getDateInstance();
Date d1=d.parse(s1);
sop(d1+"");//Fri Jul 19 00:00:00 CST 2013
}
//方法7: SimpleDateFormat自定义风格
@Test
public void method7() {
Date d1=new Date();
DateFormat d=new SimpleDateFormat("yyyy年MM月dd日 E,北京时间hh:mm:ss");
String s1=d.format(d1);
sop(s1);//2013年12月31日 星期二,北京时间01:27:42
}
//方法6: 给定风格
@Test
public void method6() {
Date d1=new Date();
DateFormat d=DateFormat.getDateTimeInstance(0, 0);
sop(d+"");//java.text.SimpleDateFormat@535c7d7d
String s1=d.format(d1);
sop(s1);//2007年1月1日 星期一 上午01时29分42秒 CST
d=DateFormat.getDateTimeInstance(1,1);
s1=d.format(d1);
sop(s1);//2007年1月1日 上午01时31分11秒
d=DateFormat.getDateTimeInstance(2,2);
s1=d.format(d1);
sop(s1);//2007-1-1 1:32:40
d=DateFormat.getDateTimeInstance(0,1);
s1=d.format(d1);
sop(s1);//2007年1月1日 星期一 上午01时33分10秒
}
//方法5: 给定风格
@Test
public void method5() {
Date d1=new Date();
DateFormat d=DateFormat.getDateInstance(DateFormat.FULL);
String s1=d.format(d1);
sop(s1);//2007年1月1日 星期一
d=DateFormat.getDateInstance(DateFormat.LONG);
s1=d.format(d1);
sop(s1);//2007年1月1日
d=DateFormat.getDateInstance(DateFormat.MEDIUM);
s1=d.format(d1);
sop(s1);//2007-1-1
d=DateFormat.getDateInstance(DateFormat.SHORT);
s1=d.format(d1);
sop(s1);//07-1-1
}
//方法4: 静态方法获取日期+时间格式器
@Test
public void method4() {
Date d1=new Date();
DateFormat d=DateFormat.getDateTimeInstance();
String s1=d.format(d1);
sop(s1);//2007-1-1 1:24:55
}
//方法3: 静态方法获取日期格式器
@Test
public void method3() {
/*public static final DateFormat getDateInstance(int style)
获取日期格式器,该格式器具有默认语言环境的给定格式化风格*/
Date d1=new Date();
DateFormat d=DateFormat.getDateInstance();
String s1=d.format(d1);
sop(s1);//2007-1-1
}
//方法2: 打印毫秒值!Long 从1970年到现在的毫秒值~
@Test
public void method2() {
Date d1=new Date();
sop(d1.getTime()+"");//1167585291640~1388467955578
sop(System.currentTimeMillis()+"");//1388467955578
}
//方法1: 打印系统毫秒值!Long 从1970年到现在的毫秒值~
@Test
public void method1() {
long t1=System.currentTimeMillis();
sop(""+t1);//1167584770515
Date d1=new Date();
sop(""+d1);//Mon Jan 01 01:06:53 CST 2007
Date d2=new Date(1167584770515L);//注意这个是long要加L
sop(""+d2);//Mon Jan 01 01:06:10 CST 2007
sop(d2.toString());//Mon Jan 01 01:06:10 CST 2007
}
//自定义打印输出~
public void sop(String str) {
System.out.println(str);
}
}
java.util.Random
package uncommitted;
import java.util.Random;
import org.junit.Test;
public class MathDemo {
@Test
public void method6() {
/*public int nextInt(int n)返回一个伪随机数,
它是取自此随机数生成器序列的、
在 0(包括)和指定值(不包括)之间均匀分布的 int 值。*/
Random r=new Random();
for (int i = 0; i < 10; i++) {
int d1=r.nextInt(6)+1;//0~5 +1 ---> 色子1~6
sop(i+"..."+d1);
}
}
//色子1~6
@Test
public void method5() {
Random r=new Random();
for (int i = 0; i < 10; i++) {
int d1=(int)(r.nextDouble()*6+1);//色子1~6
sop(i+"..."+d1);
}
}
@Test
public void method4() {
for (int i = 0; i < 10; i++) {
// double d1=Math.random();//0<=d1<1
double d1=Math.floor(Math.random()*10);//0~9 向下取整
d1=Math.ceil(Math.random()*10);//1~10 向上取整
d1=Math.round(Math.random()*10);
//0~10 四舍五入 其实是加0.5后向下取整 (long)floor(a + 0.5d);
sop(i+"..."+d1);
}
}
@Test
public void method3() {
/*public static double random()返回带正号的 double 值,
该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数,
在该范围内(近似)均匀分布。
第一次调用该方法时,它将创建一个新的伪随机数生成器,
与以下表达式完全相同
new java.util.Random之后,
新的伪随机数生成器可用于此方法的所有调用
,但不能用于其他地方。*/
/*for (int i = 0; i < 10; i++) {
double d1=Math.random();//0<=d1<1
sop(i+"..."+d1);
}*/
for (int i = 0; i < 10; i++) {
// double d1=(int)(Math.random()*10);//
// int d1=(int)(Math.random()*6+1);//色子1~6
int d1=(int)(Math.random()*10);//3D 0~9
sop(i+"..."+d1);
}
}
//a的b次方
@Test
public void method2() {
double d1=Math.pow(10, 3);
sop("Math.pow(10, 3)--->"+d1);//--->1000.0
}
@Test
public void method1() {
double d1=Math.ceil(11.3);
sop("11.3--->ceil--->"+d1);
d1=Math.ceil(-11.3);
sop("-11.3--->ceil--->"+d1);
d1=Math.floor(11.3);
sop("11.3--->floor--->"+d1);
d1=Math.floor(-11.3);
sop("-11.3--->floor--->"+d1);
sop("========= return (long)floor(a + 0.5d);=============");
// ========== return (long)floor(a + 0.5d);============
d1=Math.round(-11.4);
sop("-11.4--->round--->"+d1);
d1=Math.round(-11.5);
sop("-11.5--->round--->"+d1);
d1=Math.round(-11.51);
sop("-11.51--->round--->"+d1);
d1=Math.round(-11.6);
sop("-11.6--->round--->"+d1);
/*
11.3--->ceil--->12.0
-11.3--->ceil--->-11.0
11.3--->floor--->11.0
-11.3--->floor--->-12.0
========= return (long)floor(a + 0.5d);=============
-11.4--->round--->-11.0
-11.5--->round--->-11.0
-11.51--->round--->-12.0
-11.6--->round--->-12.0
*/
}
//自定义打印方法
public void sop(String str) {
System.out.println(str);
}
}
java.lang.Runtime
package uncommitted;
import java.io.IOException;
import org.junit.Test;
public class RuntimeDemo {
@Test
public void method3() throws IOException, InterruptedException {
Runtime r=Runtime.getRuntime();
Process p=r.exec("notepad.exe c:\\abc.txt");
//高级应用,用记事本打开txt,不存在会询问是否创建~
Thread.sleep(3000);
//控制自动结束进程
p.destroy();
}
@Test
public void method2() {
//打印虚拟机 的内存 默认64M,可以手动更改~
//右键 Run As~Open Debug Dialog~Args~-Xmx80M
//-Xmx 这个参数是设定使用的最大内存
//-Xms 这个参数是设定使用的最小内存
//同样,通过eclipse设置来修改此参数:
//Window->Preferences->Java->Installed JREs 双击jre,-Xmx80M
Runtime r=Runtime.getRuntime();
System.out.println(r.maxMemory()/1024/1024);//byte-->M
System.out.println(r.freeMemory()/1024/1024);//byte-->M
System.out.println(r.totalMemory()/1024/1024);//byte-->M
}
public void method1() throws IOException {
// Runtime去使用程序打开关联的文件
Runtime r=Runtime.getRuntime();
// r.exec("notepad.exe");
// r.exec("calc.exe");
//r.exec("shutdown -s -t 60");//单位是秒
r.exec("shutdown -a");//取消
r.exec("notepad.exe c:\\abc.java");//高级应用,用纪事本打开java
}
}
java.lang.System
package uncommitted;
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
import org.junit.Test;
public class SystemDemo1 {
static final String LINE_SEPARATOR=System.getProperty("line.separator");
@Test
public void method4() {
// 实例:行分割符!
String l_s=System.getProperty("line.separator");
System.out.println("林黛玉"+l_s+"薛宝钗");
}
public void method3() {
// 用新的增强for取Hashtable的子类Properties的键值对
Properties prop=System.getProperties();
// static Properties getProperties()
// 确定当前的系统属性。
for (String key : prop.stringPropertyNames()) {
String value=prop.getProperty(key);
System.out.println(key+"..."+value);
}
}
public void method2() {
// 用旧的迭代器取Hashtable的子类Properties的键值对
/* public Set<String> stringPropertyNames()
* JDK 1.6才有
返回此属性列表中的键集,
其中该键及其对应值是字符串,
如果在主属性列表中未找到同名的键,
则还包括默认属性列表中不同的键。
其键或值不是 String 类型的属性被忽略。
*/ Properties prop=System.getProperties();
Set<String> nameSet=prop.stringPropertyNames();
Iterator<String> it=nameSet.iterator();
while (it.hasNext()) {
String key = (String) it.next();
String value=prop.getProperty(key);
System.out.println(key+"..."+value);
}
}
@Test
public void method1() {
//返回1970年以来的毫秒值
System.out.println(System.currentTimeMillis());//1388470040796
}
}
/*
* 键 相关值的描述
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
*/
/*
java.runtime.name...Java(TM) SE Runtime Environment
sun.boot.library.path...D:\Program Files\Java\jdk1.7.0_01\jre\bin
java.vm.version...21.1-b02
java.vm.vendor...Oracle Corporation
java.vendor.url...http://java.oracle.com/
path.separator...;
java.vm.name...Java HotSpot(TM) Client VM
file.encoding.pkg...sun.io
user.script...
sun.java.launcher...SUN_STANDARD
sun.os.patch.level...Service Pack 3
java.vm.specification.name...Java Virtual Machine Specification
user.dir...E:\javase\ework\source_code
java.runtime.version...1.7.0_01-b08
java.awt.graphicsenv...sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs...D:\Program Files\Java\jdk1.7.0_01\jre\lib\endorsed
os.arch...x86
java.io.tmpdir...C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
line.separator...
java.vm.specification.vendor...Oracle Corporation
user.variant...
os.name...Windows XP
sun.jnu.encoding...GBK
java.library.path...D:\Program Files\Java\jdk1.7.0_01\bin;C:\WINDOWS\Sun\Java\bi
n;C:\WINDOWS\system32;C:\WINDOWS;D:\Program Files\Java\jdk1.7.0_01\jre\bin;D:/Pr
ogram Files/Java/jdk1.7.0_01/bin/../jre/bin/client;D:/Program Files/Java/jdk1.7.
0_01/bin/../jre/bin;D:/Program Files/Java/jdk1.7.0_01/bin/../jre/lib/i386;D:\Pro
gram Files\Java\jdk1.7.0_01\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System
32\Wbem;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;E:\javase\ec
lipse-java-kepler-SR1-win32\eclipse;;.
java.specification.name...Java Platform API Specification
java.class.version...51.0
sun.management.compiler...HotSpot Client Compiler
os.version...5.1
user.home...C:\Documents and Settings\Administrator
user.timezone...
java.awt.printerjob...sun.awt.windows.WPrinterJob
file.encoding...GBK
java.specification.version...1.7
user.name...Administrator
java.class.path...E:\javase\ework\source_code\bin
java.vm.specification.version...1.7
sun.arch.data.model...32
java.home...D:\Program Files\Java\jdk1.7.0_01\jre
sun.java.command...source_code.SystemDemo1
java.specification.vendor...Oracle Corporation
user.language...zh
awt.toolkit...sun.awt.windows.WToolkit
java.vm.info...mixed mode
java.version...1.7.0_01
java.ext.dirs...D:\Program Files\Java\jdk1.7.0_01\jre\lib\ext;C:\WINDOWS\Sun\Jav
a\lib\ext
sun.boot.class.path...D:\Program Files\Java\jdk1.7.0_01\jre\lib\resources.jar;D:
\Program Files\Java\jdk1.7.0_01\jre\lib\rt.jar;D:\Program Files\Java\jdk1.7.0_01
\jre\lib\sunrsasign.jar;D:\Program Files\Java\jdk1.7.0_01\jre\lib\jsse.jar;D:\Pr
ogram Files\Java\jdk1.7.0_01\jre\lib\jce.jar;D:\Program Files\Java\jdk1.7.0_01\j
re\lib\charsets.jar;D:\Program Files\Java\jdk1.7.0_01\jre\classes
java.vendor...Oracle Corporation
file.separator...\
java.vendor.url.bug...http://bugreport.sun.com/bugreport/
sun.cpu.endian...little
sun.io.unicode.encoding...UnicodeLittle
sun.desktop...windows
sun.cpu.isalist...
*/