实现对周的划分

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现对周的划分相关的知识,希望对你有一定的参考价值。

1 问题

以周一作为每周的开始,周日作为每周的结束。

当遇到某月的第一天非周一时,以这天作为这月第一周的开始天。

当遇到某月的最后一天非周日时,以这天作为这月最后一周的结束天。

2 方法

 /**
* 获取当前时间为该月的第几周
* @param date
* @return
*/
public static int getWeekOfMonth(Date date)  
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
//获取对应的周数
int week = calendar.get(Calendar.WEEK_OF_MONTH);
//如果当天是星期天,会按下一周计算,则需要减1
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
week--;

//获取当前月份第一天
Calendar firstDayOfMonthcalendar = Calendar.getInstance();
firstDayOfMonthcalendar.setTime(monthFirstDayByDate(date));
//如果当前月1号是星期天,会按下一周计算,该月周数少算1天,则加1
if (firstDayOfMonthcalendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
week ++;

// 第几周
return week;

3 结语

通过这次周博客知道了简单的逻辑思考就能知道一个中周的划分但是在编程实现中这需要让机器学会并且模拟出人思考的一种方式,就需要我们将自己的思想转化为一个能够具象化的东西例如数字等等。这种全链路的解决方案能够给生活中思考问题时带来启发缕清思路。

以上是关于实现对周的划分的主要内容,如果未能解决你的问题,请参考以下文章

如何将星期天设置为excel对周计算的第一天。

体验了一周Mac OS Monterey,为啥不建议你升级

Java第十周的作业

CSDN|每日一练硬币划分

CSDN|每日一练硬币划分

具象状态传输 (REST) 和简单对象访问协议 (SOAP)