永发信息网

任意一个起止时间段(如:20160101-20161009),用java将这个时间段拆分成一个个按自然周组成的时间段

答案:1  悬赏:10  手机版
解决时间 2021-11-28 11:05
任意一个起止时间段(如:20160101-20161009),用java将这个时间段拆分成一个个按自然周组成的时间段
最佳答案
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class Week {

public static void main(String[] args) throws ParseException {
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");    
        SimpleDateFormat sdw = new SimpleDateFormat("E");    
        System.out.println("请输入时间段,格式如:20160101-20161111(不足10位以0补足)");
        Scanner s = new Scanner(System.in);
        String date = s.next();
        String begin_date = date.split("-")[0];
        String end_date = date.split("-")[1];
        String begin_date_fm = begin_date.substring(0, 4) + "-" + begin_date.substring(5,6) + "-" + begin_date.substring(7,8);
        String end_date_fm =  end_date.substring(0, 4) + "-" + end_date.substring(5,6) + "-" + end_date.substring(7,8);
        Date b = null;
        Date e = null;
        try {    
            b = sd.parse(begin_date_fm); 
            e = sd.parse(end_date_fm);
        } catch (ParseException ee) {    
            ee.printStackTrace();    
        }
        Calendar rightNow = Calendar.getInstance();
        rightNow.setTime(b);
        Date time = b;
        String year = begin_date_fm.split("-")[0];
        String mon = Integer.parseInt(begin_date_fm.split("-")[1])<10?"0"+begin_date_fm.split("-")[1]:begin_date_fm.split("-")[1];
        String day = Integer.parseInt(begin_date_fm.split("-")[2])<10?"0"+begin_date_fm.split("-")[2]:begin_date_fm.split("-")[2];
        String timeb = year+mon+day;
        String timee = null;
        while(time.getTime()<=e.getTime()){
         rightNow.add(Calendar.DAY_OF_YEAR,1);
         time = sd.parse(sd.format(rightNow.getTime()));
         String timew = sdw.format(time);
         if(("星期一").equals(timew)){
         timeb = (sd.format(time)).replaceAll("-", "");
         }
         if(("星期日").equals(timew) || ("星期七").equals(timew) || time.getTime() == e.getTime()){
         timee = (sd.format(time)).replaceAll("-", "");
         System.out.println(timeb+"-"+timee);
         }
        }
        
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乌鸡怎么做好吃
女属马下午一点至三点钟生的她的一生运气如何
从8:45到17:20多长时间
四川铜币有几种版本
这是电镀的硬铬还是装饰铬?
布鸽桌游地址在哪,我要去那里办事,
上市公司高管的薪水为股东方领报酬是什么意思
和丽无边日月风风,组成两个成语
新浪微博现在密友圈不见了,是不是不能发微博
阜宁公兴到上冈多公里
快递在一个地方卡了一天了,怎么回事?
移动现在什么套餐最优惠
水果安全追溯体系要怎么建立才完善呢?
奥迪a7B101B4A故障码什么意思
Mini2的ppi是326,而iPad air ppi为264,虽然
推荐资讯
课内文言知识阅读答案
这三个那个好,不懂意思啊
加热棒设置32度怎么29度了还不加热
细胞分裂过程中对生物的遗传具有重要意义的是
握手怎么形容
jquery change 事件问题!
圈里有谁在喝过澳洲a2奶粉的吗?
这个耐克科11是不是真的?
三岁多小孩每天晚上都要看半小时以上的手机
宝马GT528上高速噪声太大了还抖
小明这次出差是连续两个月,正好62天,这两个
一天随便吃一天不吃坚持两周会瘦吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?