一个简单的事务提醒程序

[quote][size=small] 因为经理要求我们及时填写绩效系统,和登录,关闭绩效系统,又担心工作忙忘记填写,所以做了这个小程序。程序可以根据属性文件配置来做提醒。比如在10:30点时程序提醒,则我们只需要在属性文件加入“10-30=记得记录绩效系统哦!”(不含双引号)。不多说啦,以下是程序的实现和属性文件的填写。
附件中是程序编译成功之后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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值