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(); } } }
复制代码

 

posted @   K____K  阅读(169)  评论(0编辑  收藏  举报
编辑推荐:
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
阅读排行:
· 想让你多爱自己一些的开源计时器
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 大模型 Token 究竟是啥:图解大模型Token
· 用99元买的服务器搭一套CI/CD系统
· 如何在 .NET 中 使用 ANTLR4
点击右上角即可分享
微信分享提示