实现对周的划分

简介: 实现对周的划分

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 结语

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

目录
相关文章
|
XML 前端开发 架构师
|
存储 消息中间件 监控
大型系统如何划分边界?
大型系统如何划分边界?
335 0
大型系统如何划分边界?
|
算法
1315:【例4.5】集合的划分
1315:【例4.5】集合的划分
|
网络协议 网络架构
网络划分的方法
一个A类IP地址是指,在IP地址的四段号码中,第一段号码为网络号码,剩下的三段号码为本地计算机的号码。如果用二进制表示IP地址的话,A类IP地址就由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”。A类IP地址中网络的标识长度为7位,主机标识的长度为24位,A类网络地址数量较少,可以用于主机数达1600多万台的大型网络。
|
网络协议 网络架构
划分子网的原理及方法
子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。
|
Java 中间件 测试技术
领域划分的规则是什么?
领域划分的规则是什么?
1264 0
领域划分的规则是什么?
|
算法 前端开发
划分数组使最大差为 K
🎈每天进行一道算法题目练习,今天的题目是“划分数组使最大差为 K”。
246 0
ZCMU - 2117: 数的划分
ZCMU - 2117: 数的划分
81 0