randomDate随机时间的生成

最近在学hibernate时,看到一种随机时间的生成方法,觉得很好就把它们复制过来了

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;

import junit.framework.TestCase;

import org.hibernate.Session;
import org.hibernate.Transaction;

public class HibernateHqlTest  extends  TestCase
{
  public void testSave1()
     {
     
      Session session=null;
    
      Transaction tx=null;
     
    
      try
      {
     
      session=HibernateUtils.getSession();
      tx=session.beginTransaction();
        for(int i=0;i<10;i++)
        {
         Classess classess=new Classess();
         classess.setName("班级"+i);
         session.save(classess);
         for(int j=0;j<10;j++)
         {
          Students student=new Students();
          student.setName("班级"+i+"的学生"+j);

          //生成随机时间的测试
          student.setCreateTime(randomDate("2009-01-01","2008-10-01"));
          student.setClassess(classess);
          session.save(student);
         }
        
        }
     for (int i=0;i<5;i++)
     {
      Classess classess=new Classess();
      classess.setName("无学生班级"+i);
      session.save(classess);
     }
     
     for (int i=0;i<10;i++)
     {
      Students  student=new Students();
      student.setName("无业游民"+i);
      session.save(student);
     }
       tx.commit();
      }
      catch(Exception e)
      {
      
       e.printStackTrace();
       tx.rollback();
      }
      finally
      {
       HibernateUtils.closeSession(session);
      }}
 
 
 
  //生成随机时间的方法
  private static Date randomDate(String beginDate, String endDate) {  
         try {  
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
             Date start = format.parse(beginDate);// 构造开始日期  
             Date end = format.parse(endDate);// 构造结束日期  
             // getTime()表示返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。  
             if (start.getTime() >= end.getTime()) {  
                 return null;  
             }  
             long date = random(start.getTime(), end.getTime());  
  
             return new Date(date);  
         } catch (Exception e) {  
             e.printStackTrace();  
         }  
         return null;  
     }  
  
     private static long random(long begin, long end) {  
         long rtn = begin + (long) (Math.random() * (end - begin));  
         // 如果返回的是开始时间和结束时间,则递归调用本函数查找随机值  
         if (rtn == begin || rtn == end) {  
             return random(begin, end);  
         }  
         return rtn;  
     }  
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值