java -日期处理

不羁的心 提交于 2020-03-27 18:10:47

1. 计算某年某月份 总有多少个周,每周的开始和结束时间?

思路:1.计算出本月实际的总天数

   2.循环每一天,判断这天是否是 周日(1),如果是,周数加1,再次判断是否是月的第一个周一,如是,开始时间直接取1,结束时间取 当前时间

    否则开始时间 取 当前时间 - 6, 结束时间取 当前时间。

如下:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class TestDate {
    public static void main(String[] args) {
        try {
            String date = "2016-11";
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
            Date date1 = dateFormat.parse(date);
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date1);       //获取总天数
            int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            System.out.println("days:" + days);
            int count = 0;//周数
            for (int i = 1; i <= days; i++) {
                DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
                Date date2 = dateFormat1.parse(date + "-" + i);
                calendar.clear();
                calendar.setTime(date2);
                int k = new Integer(calendar.get(Calendar.DAY_OF_WEEK));
                if (k == 1) {// 若当天是周日
                    count++;
                    System.out.println("-----------------------------------");
                    System.out.println("第" + count + "周");
                    if (i - 6 <= 1) {
                        System.out.println("本周开始日期:" + date + "-" + 1);
                    } else {
                        System.out.println("本周开始日期:" + date + "-" + (i - 6));
                    }
                    System.out.println("本周结束日期:" + date + "-" + i);
                    System.out.println("-----------------------------------");
/*                    if(count==2){
                        break;
                    }*/
                }
                if (k != 1 && i == days) {// 若是本月最好一天,且不是周日
                    count++;
                    System.out.println("-----------------------------------");
                    System.out.println("第" + count + "周");
                    System.out.println("本周开始日期:" + date + "-" + (i - k + 2));
                    System.out.println("本周结束日期:" + date + "-" + i);
                    System.out.println("-----------------------------------");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!