java吧 关注:1,295,153贴子:12,830,995
  • 10回复贴,共1

分享一个随机生成日期的JAVA程序

只看楼主收藏回复

RT


1楼2013-04-08 15:55回复
    public class test3 { // 返回2011-01-01到2011-12-01的一个随机日期
    public static void main(String[] args) {
    String str = date();
    System.out.println(str);
    }
    }
    主函数


    2楼2013-04-08 15:56
    回复
      2026-01-19 19:34:10
      广告
      不感兴趣
      开通SVIP免广告
      /**
      * 生成一个在开始日期和结束日期之间的随机日期
      * @param beginDate 开始日期
      * @param endDate 结束日期
      * @return 返回一个在beginDate与endDate之间的随机日期
      */
      private static Date randomDate(String beginDate,String endDate){
      try {
      //建立一个SimpleDateFormat对象,指定好时间格式
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //把传进来的String类型的时间转化为Date类型
      Date start = format.parse(beginDate);
      Date end = format.parse(endDate); //如果开始时间大于等于结束时间,啥也不干了,返回null
      if(start.getTime() >= end.getTime()){
      return null;
      } //调用random函数,生成代表特定日期的long类型的随机数
      //getTime函数得到的是long类型的数
      long date = random(start.getTime(),end.getTime()); //根据这个随机数,实例化一个日期对象,也就是生成了一个随机日期
      return new Date(date);
      } catch (Exception e) {
      e.printStackTrace();
      } return null;
      }


      3楼2013-04-08 15:56
      回复
        /**
        * 生成一个long类型的随机数
        * @param begin 代表开始日期的long类型数
        * @param end 代表结束日期的long类型数
        * @return 返回long类型的随机数
        */
        private static long random(long begin,long end){
        //Math.random()生成0到1之间的一个随机数
        //随机数接近0时,生成的日期接近开始日期,随机数接近1时,生成的日期接近结束日期
        long rtn = begin + (long)(Math.random() * (end - begin));
        if(rtn == begin || rtn == end){
        return random(begin,end);
        }
        return rtn;
        }


        4楼2013-04-08 15:57
        回复
          public static String date(){
          SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
          Date randomdate = randomDate("1989-08-15", "2003-02-07");
          String str=format.format(randomdate);
          return str;
          }


          5楼2013-04-08 15:58
          回复
            坐等复制测试


            来自手机贴吧6楼2013-04-08 16:01
            回复
              不懂


              7楼2013-04-08 16:04
              回复
                Random r = new Random();
                Calendar calendar = Calendar.getInstance();
                calendar.setTimeInMillis(r.nextLong());


                8楼2013-04-08 16:18
                收起回复
                  2026-01-19 19:28:10
                  广告
                  不感兴趣
                  开通SVIP免广告
                  1997-04-05
                  得到的效果就是上面这个样子


                  9楼2013-04-08 16:19
                  回复