选择一段日期内的每一天

最近在完成一个小项目时,碰到要取一个月部份日期的问题,经过一番努力后终于完成了。由于学习才刚刚学习java,不足之处还请指正。实现的功能有:
1. 根据输入的日期,返回当前月份的每一天。
2.根据输入的日期,返回昨天的日期。
3.返回当前日期的月份天数

根据输入的日期,返回当前月份的每一天

    public List<String> getMonthDaylist(String date) // 获取当前月份1号到最后的每一天(如果是当前月份则到当天为止)
    {
        List<String> dayList=new LinkedList<String>();
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar1=Calendar.getInstance();
        Calendar calendar2=Calendar.getInstance();
        Calendar calendar3=Calendar.getInstance();
        int YEAR=Integer.valueOf(date.substring(0,4)).intValue(); 
        int MONTH=Integer.valueOf(date.substring(5,7)).intValue(); 
        int DAY=Integer.valueOf(date.substring(8,10)).intValue();
        calendar1.set(YEAR, MONTH-1,DAY);  // 因为month中0为1月,所以减去1.
        calendar2.setTime(new Date());
        //calendar2.set(2017,6,1);
        calendar3.set(YEAR, MONTH-1,1);
        boolean a=calendar1.get(Calendar.YEAR)==calendar2.get(Calendar.YEAR);
        boolean b=calendar1.get(Calendar.MONTH)==calendar2.get(Calendar.MONTH);
        System.out.println("Time1="+format.format(calendar1.getTime()));
        System.out.println("Time2="+format.format(calendar2.getTime()));
        int num=(a&&b)? calendar2.get(Calendar.DATE):getMonthOfDay(date);;
        int count=0;
        while(count<num)
        {
            count++;
            //System.out.println(format.format(calendar3.getTime()));
            dayList.add(format.format(calendar3.getTime()));
            calendar3.roll(Calendar.DATE, +1);
        }
        return dayList;
    }

根据输入的日期,返回昨天的日期

public String getYestoday(String date)
    {
        SimpleDateFormat format;
        Calendar calendar;
        int YEAR=Integer.valueOf(date.substring(0,4)).intValue(); 
        int MONTH=Integer.valueOf(date.substring(5,7)).intValue(); 
        int DAY=Integer.valueOf(date.substring(8,10)).intValue();
        format=new SimpleDateFormat("yyyy-MM-dd");
        calendar=Calendar.getInstance();
        calendar.set(YEAR, MONTH,DAY);
        calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)-1);
        return format.format(calendar.getTime());
    }

返回当前日期的月份天数

    public int getMonthOfDay(String date) // 获取当前月份的天数
    {
        Calendar calendar=Calendar.getInstance();
        int YEAR=Integer.valueOf(date.substring(0,4)).intValue(); 
        int MONTH=Integer.valueOf(date.substring(5,7)).intValue(); 
        calendar.set(YEAR, MONTH+0,+1);   // 将月份加1个月
        calendar.set(Calendar.DATE,-0);   // 将天数减1
        return calendar.get(Calendar.DATE);
    }

总的来说,就是Calendar类的应用。
ps:需要注意的一点是,Calendar的月份从0开始。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值