A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 丁岩 于 2012-11-4 10:00 编辑

看了毕老师写的通过Properties写的记录软件读取次数的程序,并且如果超过指定count后程序会跳出,提示用户注册。我就在想也来写一个限制用户软件使用时间的程序吧,下面我来分享一下我的源代码,欢迎大家提一些宝贵意见。(默认是使用30天哦!!!)
  1. package Gongtongti;

  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileReader;
  5. import java.io.FileWriter;
  6. import java.io.IOException;
  7. import java.io.Reader;
  8. import java.text.ParseException;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Calendar;
  11. import java.util.Date;
  12. import java.util.Properties;



  13. public class Dates
  14. {
  15. private static Date d=null;
  16. private static Calendar c=null;
  17. private static Date d2=null;
  18. private static Properties pro=null;
  19. private static Date now=null;
  20. private static long ct;
  21. private static int DAYS=30;//使用天数

  22. public static void main(String[]args) throws IOException, ParseException, InterruptedException
  23. {


  24. init();
  25. compare();

  26. }


  27. public static void init() throws IOException, ParseException
  28. {
  29. pro=new Properties();
  30. File f=new File("C:\\count.ini");//写入磁盘的配置文件
  31. if(!f.exists())//如果第一次使用不存在则创建它
  32. {
  33. try {
  34. f.createNewFile();
  35. } catch (IOException e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. System.out.println("文件创建不成功!!");
  39. }
  40. }
  41. FileReader fr=new FileReader(f);
  42. pro.load(fr);//加载配置文件
  43. if(pro.getProperty("Flag")==null)//第一次执行程序时执行代码
  44. {
  45. boolean flag=true;

  46. d=new Date();//记录当前安装时间
  47. c=Calendar.getInstance();
  48. c.add(Calendar.DATE, DAYS);//将安装时间推迟DAYS天
  49. d2=c.getTime();

  50. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

  51. pro.setProperty("Date", sdf.format(d));//存储Date记录第一次使用的时间
  52. pro.setProperty("Date2", sdf.format(d2));//存储Date2为到期时间
  53. pro.setProperty("Flag",flag+"");//Flag标识符用于记录该配置文件是否第一次创建
  54. FileWriter fw=new FileWriter(f);
  55. pro.store(fw, "");
  56. }
  57. else
  58. {
  59. now=new Date();//获得后期使用软件时的当前时间
  60. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  61. pro.setProperty("Date", sdf.format(now));//修改配置文件,替换Date安装时间的值
  62. FileWriter fw=new FileWriter(f);
  63. pro.store(fw,"");
  64. String date=pro.getProperty("Date");//读取Date(最近使用时间)和Date2(到期时间),然后做差求出剩余天数
  65. String date2=pro.getProperty("Date2");
  66. SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
  67. Date d1=sdf2.parse(date);
  68. Date d2=sdf2.parse(date2);
  69. long c1=d1.getTime();
  70. long c2=d2.getTime();
  71. ct=(c2-c1)/(1000*3600*24);

  72. }
  73. }


  74. public static void compare() throws InterruptedException//对剩余天数进行判断
  75. {
  76. int day=(int)ct;

  77. if(day>=0)//如果大于0,可以继续使用,并提示用户剩余多少天
  78. {
  79. System.out.println("感谢您的使用~距离试用期结束还有"+day+"天");
  80. }
  81. else//如果小于0说明已经过期,提示用户过期信息,并在10秒后退出程序
  82. {
  83. System.out.println("试用期结束,感谢您的使用,如需帮助请购买正版软件!!10秒后自动退出");
  84. Thread.sleep(10000);
  85. System.exit(0);
  86. }
  87. }


  88. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马