比如:当前时间是2011-01-06,返回得到:2011-01-16 ,不过要去除节假日,和周六日(比如只是个说明,2011-01-16不是正确时间)找了些资料,知道应该在数据库中创建节日表,表信息如下: type date id name
"法定假日","2011-04-03",1,"清明节"
"法定假日","2011-04-04",2,"清明节"
"法定假日","2011-04-05",3,"清明节"
"法定假日","2011-04-30",4,"劳动节"
"法定假日","2011-05-01",5,"劳动节"
"法定假日","2011-05-02",6,"劳动节"
"法定假日","2011-06-04",7,"端午节"
"法定假日","2011-06-05",8,"端午节"
"法定假日","2011-06-06",9,"端午节"
"法定假日","2011-09-10",12,"中秋节"
"法定假日","2011-09-11",13,"中秋节"
"法定假日","2011-09-12",14,"中秋节"
"法定假日","2011-10-07",17,"国庆节"
"法定假日","2011-10-06",18,"国庆节"
"法定假日","2011-10-05",19,"国庆节"
"法定假日","2011-10-04",20,"国庆节"
"法定假日","2011-10-03",21,"国庆节"
"法定假日","2011-10-02",22,"国庆节"
"法定假日","2011-10-01",23,"国庆节"
"调休","2011-10-09",24,"国庆节"
"调休","2011-10-08",25,"国庆节"
"法定假日","2011-01-01",26,"元旦"
"法定假日","2011-01-02",27,"元旦"
"法定假日","2011-01-03",28,"元旦"
"法定假日","2011-02-02",29,"春节"
"法定假日","2011-02-03",30,"春节"
"法定假日","2011-02-04",31,"春节"
"法定假日","2011-02-05",32,"春节"
"法定假日","2011-02-06",33,"春节"
"法定假日","2011-02-07",34,"春节"
"法定假日","2011-02-08",35,"春节"
"调休","2011-01-30",36,"春节"
"调休","2011-02-12",37,"春节"
"调休","2011-04-02",38,"清明节"求方法代码怎么实现,注意"调休"
"法定假日","2011-04-03",1,"清明节"
"法定假日","2011-04-04",2,"清明节"
"法定假日","2011-04-05",3,"清明节"
"法定假日","2011-04-30",4,"劳动节"
"法定假日","2011-05-01",5,"劳动节"
"法定假日","2011-05-02",6,"劳动节"
"法定假日","2011-06-04",7,"端午节"
"法定假日","2011-06-05",8,"端午节"
"法定假日","2011-06-06",9,"端午节"
"法定假日","2011-09-10",12,"中秋节"
"法定假日","2011-09-11",13,"中秋节"
"法定假日","2011-09-12",14,"中秋节"
"法定假日","2011-10-07",17,"国庆节"
"法定假日","2011-10-06",18,"国庆节"
"法定假日","2011-10-05",19,"国庆节"
"法定假日","2011-10-04",20,"国庆节"
"法定假日","2011-10-03",21,"国庆节"
"法定假日","2011-10-02",22,"国庆节"
"法定假日","2011-10-01",23,"国庆节"
"调休","2011-10-09",24,"国庆节"
"调休","2011-10-08",25,"国庆节"
"法定假日","2011-01-01",26,"元旦"
"法定假日","2011-01-02",27,"元旦"
"法定假日","2011-01-03",28,"元旦"
"法定假日","2011-02-02",29,"春节"
"法定假日","2011-02-03",30,"春节"
"法定假日","2011-02-04",31,"春节"
"法定假日","2011-02-05",32,"春节"
"法定假日","2011-02-06",33,"春节"
"法定假日","2011-02-07",34,"春节"
"法定假日","2011-02-08",35,"春节"
"调休","2011-01-30",36,"春节"
"调休","2011-02-12",37,"春节"
"调休","2011-04-02",38,"清明节"求方法代码怎么实现,注意"调休"
解决方案 »
- 对于同一个程序进行junit断点调试,一个方法测试正常,另一个方法总是直接跳入Class File Editor,如何解决???
- WebService 问题
- 学习效率低,该怎么办??
- 一个java笔试题,关于逻辑推断的
- SSH框架问题
- Java大版主俞黎敏先生推荐《Java 核心技术第8版》
- 前后台交互的逻辑处理问题请教
- 【高分求救】关于一个socket客户端程序的错误----求教高手!
- JBoss3.2.3如何变成开发模式?现在编译一个Servlet或者是Java类,都需要重新启动才能生效
- socket 在xp和win2k之间的数据传输问题
- 这个类哪里出错了?在线等。
- 如何让两个线程做同一件事? 这件事要花很长的时间
用程序也行,
思路是:把你的这张表的日期全部读到一个HashMap.
然后从起始日期开始,一天天加.加一天去hashmap get一下看看是不是,如果不是就总天数(10天)减1.
就这样一直到总天数为0.
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;public class Test {
public static void main(String[] args) {
SimpleDateFormat fomatter = new SimpleDateFormat("yyyy-MM-dd"); // 自己定义转换后的日期格式
GregorianCalendar calendar = new GregorianCalendar(); for (int count = 0; count < 30;) {
calendar.add(GregorianCalendar.DAY_OF_MONTH, 1);
int dow = calendar.get(GregorianCalendar.DAY_OF_WEEK); // 是周末
if (dow == 1 || dow == 7) {
System.out.println(fomatter.format(calendar.getTime()) + ((dow == 1) ? ": 周日" : ": 周六"));
continue;
} String dateString = fomatter.format(calendar.getTime());
// 与节日表判断一下,如果是,则continue
System.out.println(dateString); ++count;
}
}
}
public String lastbinding(int sum) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date now = new Date();
ArrayList list1=new ArrayList();
ArrayList list2=new ArrayList();
try {
conn=new ConnectDB().getConn();
String sql="select type,date from zjcf_holiday";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
list1.add(rs.getString("type"));
list2.add(rs.getString("date"));
}
//System.out.println(list1.get(2)+" "+list2.get(1));
sum=sum+1;
while(sum>0){
if((now.getDay()!=0) && (now.getDay()!=6)){
sum--;
//System.out.println(list1.size());
for(int i=0;i<list1.size();i++){
if((list1.get(i).equals("法定假日"))&&(df.format(now).equals(list2.get(i))))
{
sum++;
}
}
}else{
for(int i=0;i<list1.size();i++){
if((list1.get(i).equals("调休"))&&(df.format(now).equals(list2.get(i))))
{
sum--;
}
}
}
if(sum>0){
now.setDate(now.getDate()+1);
}
System.out.println(sum+" "+df.format(now));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(rs!=null)
rs.close();
if( pstmt != null )
pstmt.close();
if( conn != null )
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
//System.out.println(df.format(now));
return df.format(now);
}
public static void main(String[] args) {
OperKehu oper=new OperKehu();
oper.lastbinding(10);
}