java 日期处理

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(); } } }
原文地址:https://www.cnblogs.com/GotoJava/p/6093213.html