日历生成---java 代码

本文详细阐述了如何通过删除并重新生成日历的方式,确保节假日信息的准确性。包括使用Calendar类获取当前年份的第一天和最后一天,通过SQL语句删除已有日期信息,然后在特定日期插入节假日信息,如元旦、五一劳动节、国庆节等,以及周末和工作日的标记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.ydyd.rsp.trans;
/*
 * 实现 日历的生成,先删除,后生成
 * 2011-08-30
 * */
import java.util.Calendar;


public class Svr814action implements IRspAction {
    public RspResult execute(MainContext maincontext, IRspBean rspBean)
            throws RspException {
        Svr814bean mybean = (Svr814bean) rspBean;
        YYTPORSP mf = new YYTPORSP();
        int year=new Integer(mybean.getYear()).intValue();
        String sql="delete from holiday where YMD like '%"+year+"%'";//删除已有日期信息
        PersistentTool commonPersistent_gjj = PersistentTool.getInstance(
                "resources/rsp.cfg.xml", true);
        try {
            commonPersistent_gjj.execute(sql);
        } catch (Exception e1) {
            try{
                PersistentTool.rollback();
            }catch(Exception e){
                e.printStackTrace();
                throw new RspException("回滚时出现异常!");
                
            }
            // TODO Auto-generated catch block
            e1.printStackTrace();
            throw new RspException("清理日期的时候出错,出错原因为【"+e1.getMessage()+"】");
        }
            //DayStatus[][] arr = new DayStatus[6][7];
     Calendar c=Calendar.getInstance();//得到当年第一天和最后一天
     c.set(Calendar.YEAR, year);
     c.set(Calendar.MONTH,0);
     c.set(Calendar.DATE, 1);
     Calendar d=(Calendar)c.clone();
     d.add(Calendar.YEAR, 1);    

     while(c.before(d))
     {   
         DateUtility du=new DateUtility();
         String date=du.cal2String(c);
          int weekday = c.get(Calendar.DAY_OF_WEEK);  
         try{
              if((date.substring(5)).equals("01-01")){
                   String sql1="insert into HOLIDAY (YMD,ISWORKDAY,INFO)values('"+date+"','1','元旦')";              
                    //mf.executeUpdate(sql1);
                    commonPersistent_gjj.execute2(sql1);
                                              }
              else     if((date.substring(5)).equals("05-01")){
                    String sql2="insert into HOLIDAY (YMD,ISWORKDAY,INFO)values('"+date+"','1','五一劳动节')";              
                    //mf.executeUpdate(sql2);
                    commonPersistent_gjj.execute2(sql2);
                                                               }
              else    if((date.substring(5)).equals("10-01")){
                    String sql1="insert into HOLIDAY (YMD,ISWORKDAY,INFO)values('"+date+"','1','国庆节')";              
                      //mf.executeUpdate(sql1);
                      commonPersistent_gjj.execute2(sql1);
              }
                                                              
              else  if(weekday==1||weekday==7)//如果是周末
              {
                  if(weekday==1){String sql3="insert into HOLIDAY (YMD,ISWORKDAY,INFO) values ('"+date+"','1','星期天')";
                              //   mf.executeUpdate(sql3);  
                                 commonPersistent_gjj.execute2(sql3);               
                  }
                  
                  else{String sql3="insert into HOLIDAY (YMD,ISWORKDAY,INFO) values ('"+date+"','1','星期六')";
                               //  mf.executeUpdate(sql3);
                                 commonPersistent_gjj.execute2(sql3);               
                  }
             }
             
                else {//如果是工作日        
                   String sql4="insert into HOLIDAY (YMD,ISWORKDAY)values('"+date+"','0')";
                 //  mf.executeUpdate(sql4);
                  commonPersistent_gjj.execute2(sql4);
                     }
                PersistentTool.commit();
 
     }
         catch (Exception e) {
            
             try{
                 PersistentTool.rollback();
             }catch(Exception e1){
                 e1.printStackTrace();
                 throw new RspException("rollback时出现异常!");
             }
            // TODO Auto-generated catch block
            e.printStackTrace();
            throw new RspException("插入假日表出现异常,错误原因【"+e.getMessage()+"】");
                }
          c.add(Calendar.DATE, 1);
       }
        // TODO Auto-generated method stub
        return new ....();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值