今天用JAVA写了个比较有趣的程序,定时闹钟,代码比较长,用到了Timer类的定时作用,又另外定义了一个Nao类继承TimerTask,使蜂鸣器定时发声
以下是代码
##test
package com.icss.ch01;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
public class test {
//public enum week {
// 每天,每周一,每周二,每周三,每周四,每周五,每周六,每周日
//}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Nao dingding =new Nao();
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
SimpleDateFormat format1 = new SimpleDateFormat("HH:mmE");
Timer t = new Timer();
System.out.println("设置闹钟时间:如06:10");
String time = sc.next();
Date d = null;
System.out.println("设置时间间隔:\n1.每天 2.周一 3.周二 4.周三 5.周四 6.周五 7.周六 8.周日");
int a = sc.nextInt();
switch(a) {
case 1 :
try {
d = format.parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 2 :
try {
d = format1.parse(time+"Mon");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 3 :
try {
d = format1.parse(time+"Tue");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 4:
try {
d = format1.parse(time+"Wed");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 5:
try {
d = format1.parse(time+"Thu");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 6:
try {
d = format1.parse(time+"Fri");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 7:
try {
d = format1.parse(time+"Sat");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
case 8:
try {
d = format1.parse(time+"Sun");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.scheduleAtFixedRate(dingding, d, 5000*60);
break;
}
sc.close();
}
}
##Nao
package com.icss.ch01;
import java.awt.Toolkit;
import java.util.Scanner;
import java.util.TimerTask;
public class Nao extends TimerTask {
@Override
public void run() {
// TODO Auto-generated method stub
for(long i=0;i < 100000000;i++) {
Toolkit toolkit = Toolkit.getDefaultToolkit();
toolkit.beep();
}
Scanner sc = new Scanner(System.in);
System.out.println("按q关闭闹钟");
String c = sc.next();
if(c.equals("q")) {
System.exit(0);
}
}
}