[quote][size=small] 因为经理要求我们及时填写绩效系统,和登录,关闭绩效系统,又担心工作忙忘记填写,所以做了这个小程序。程序可以根据属性文件配置来做提醒。比如在10:30点时程序提醒,则我们只需要在属性文件加入“10-30=记得记录绩效系统哦!”(不含双引号)。不多说啦,以下是程序的实现和属性文件的填写。
附件中是程序编译成功之后exe文件。(要求操作系统安装了JAVA VM)本人含有不需要安装VM,要的朋友,发qq消息给我 ,qq 28561416,或者留言。
[/size][/quote]
附件中是程序编译成功之后exe文件。(要求操作系统安装了JAVA VM)本人含有不需要安装VM,要的朋友,发qq消息给我 ,qq 28561416,或者留言。
[/size][/quote]
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JOptionPane;
public class Reminder extends TimerTask{
Properties props=new Properties();
public Reminder() {
loadConfig();
outputLog();
}
public void loadConfig(){
try {
String file="./reminder.properties";
props.load(new FileInputStream(file));
// props.load(this.getClass().getResourceAsStream(file));
} catch (Exception e) {
output("加载配置文件失败");
}
}
public String getConfig(String key){
return props.getProperty(key);
}
public void outputLog(){
try {
String isOutPut=getConfig("log-output");
if("true".equals(isOutPut)){
String log=getConfig("log-file");
System.setOut(new PrintStream(new FileOutputStream(log)));
}
} catch (FileNotFoundException e) {
output("没有找到日志文件");
}
}
public void output(String message){
SimpleDateFormat sdf=new SimpleDateFormat("MM-dd HH:mm");
String time=sdf.format(Calendar.getInstance().getTime());
System.out.println(time+" "+message);
}
public void run(){
SimpleDateFormat sdf=new SimpleDateFormat("HH-mm");
String time=sdf.format(Calendar.getInstance().getTime());
String message=getConfig(time);
if(message!=null){
output("提醒成功!");
JOptionPane.showMessageDialog(null, message, "确认对话框",
JOptionPane.WARNING_MESSAGE);
}
output("调用一次:"+message);
}
public static void main(String[] args){
Reminder reminder=new Reminder();
String hourTemp=reminder.getConfig("start-hour");
String minuteTemp=reminder.getConfig("start-minute");
String periodTemp=reminder.getConfig("period");
int hour=Integer.valueOf(hourTemp);
int minute=Integer.valueOf(minuteTemp);
long period=Long.valueOf(periodTemp)*60000;
Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int date=calendar.get(Calendar.DATE);
calendar.set(year, month, date, hour, minute);
new Timer().schedule(reminder,calendar.getTime(),period);
}
}
#设置开始小时数
start-hour=9
#设置开始的分钟数
start-minute=0
#设置程序多久读取属性文件一次
period=1
#设置程序运行的日志文件名
log-file=./reminding.log
#设置是否要程序输入运行日志
log-output=true
#以下是在某个时刻提醒的内容,时间一个符合下面的格式,时间和其消息可任意修改。
09-00=woking
11-10=cccccccccc
12-00=dddddddddd
13-00=eeeeeeeeee
09-20=bbbbbbbbbb
//当上述日志用中文提醒时,程序的提醒是乱码,这个主要是由于在使用Property的时候
//java是采用unicode来进行编码的,所以中文处理会出现字符编码不一致的问题。解决的
//方法就是将文件编码转换成ascii编码即可。
//利用jdk自带的native2ascii工具进行转换
C:\>native2ascii a.properties b.properties
//