获得某年某月的第N周的日期
发布日期:2022-02-09 20:39:04 浏览次数:7 分类:技术文章

本文共 3925 字,大约阅读时间需要 13 分钟。

[b]本人工作至今3年有余,昨天花了2-3小时竟然没有把:通过指定某年某月的xx周的一周日期得到,无比伤心,今早通过自己码代码,也算是完成了这个需求,到网站找了很久也没有找到比较好的API,所以我贴出我自己的测试代码,如有更好的代码请分享一下,谢谢![/b]
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class WeekCalendar {
/** * 常见的日期格式 */ public final static String DATEFORMAT003 = "yyyy-MM-dd"; // 本月第一周的开始日期 public final static int WEEK_1 = 1; // 本月第二周的开始日期 public final static int WEEK_2 = 8; // 本月第三周的开始日期 public final static int WEEK_3 = 15; // 本月第四周的开始日期 public final static int WEEK_4 = 22; // 本月第五周的开始日期(闰年二月有29天有五周,平年二月28天就只有四周了) public final static int WEEK_5 = 29; /** * 根据指定的日期格式转换日期 * * @param date 需要转换格式的日期 * @param formatStr 日期格式 * @return 转换之后的日期 */ public static String dateConvetStringByFormat(Date date, String formatStr) {
SimpleDateFormat myformat = new SimpleDateFormat(formatStr); String after_date = null; if (date != null) {
after_date = myformat.format(date); } return after_date; } /** * 获得指定月的最后一天 * @param year 指定的年 * @param month 指定的月 * * @return Integer */ public static int getMonthLastDay(int year, int month) {
Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, (month - 1));// 月份从0开始,得减去1 calendar.set(Calendar.DATE, 1); // 得到这月的最后一天 calendar.roll(Calendar.DATE, -1); return calendar.get(Calendar.DATE); } /** * 获得某月的共几个周 * * @param year 指定的年 * @param month 指定的月 * * @return Integer[] */ public static int getMonthAllWeeks(int year, int month) {
// 获得这一月的最后一天 int lastDay = getMonthLastDay(year, month); // 最多五周 if (lastDay >= WEEK_5) {
return 5; } return 4; } /** * 获得xx月的第xx周的一周(7天)日期,拼凑成日期格式 * * @param year 指定的年 * @param month 指定的月 * @param week 指定的周 * * @return String[] */ public static String[] getMonthWeekDayCalendar(int year, int month, int week) {
// 用来存储一周的日期 String[] dates = new String[7]; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, year); calendar.set(Calendar.MONTH, (month - 1));// 月份从0开始,得减去1 // 获得这月共有几周 int weekSum = getMonthAllWeeks(year, month); // 判断输入的周数是否超过总周数 if (week <= weekSum) {
// 没有超过总周数 int weekBeginDay = 1; // 设置周的开始日期 switch (week) {
case 2: weekBeginDay = WEEK_2; break; case 3: weekBeginDay = WEEK_3; break; case 4: weekBeginDay = WEEK_4; break; case 5: weekBeginDay = WEEK_5; break; } // 获得这一月的最后一天 int lastDay = getMonthLastDay(year, month); int index = 0; // i<=lastDay 一般到了第五周就是29号了,不到7天了,必须要在下个月1号之前终止循环 for (int i = weekBeginDay; i <= lastDay; i++) {
// 如果循环了7次,此次循环结束 if ((i - 7) >= weekBeginDay) {
break; } calendar.set(Calendar.DATE, i); // 格式化日期 dates[index] = dateConvetStringByFormat(calendar.getTime(), DATEFORMAT003); // System.out.println(dates[index]); index++; } } return dates; } public static void main(String[] args) {
// 测试代码 getMonthWeekDayCalendar(2013, 6, 4); } }

转载地址:https://blog.csdn.net/iteye_12884/article/details/82582872 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:后台JS校验框架
下一篇:linux下:apache2.2.27 + tomcat7.0 + openssl-1.0.1g(集群+session共享|摘要认证|HTTPS)

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年03月22日 21时55分29秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

php 程序授权机制,授权认证详细说明 2019-04-21
java 命令提示符,如何使用Java打开命令提示符并插入命令? 2019-04-21
IP/tzgm.php,LianjiaSpider/在售数量.ipynb at master · BerSerK/LianjiaSpider · GitHub 2019-04-21
linux移动文件的脚本,使用Linux脚本移动文件 2019-04-21
linux查看系统所有变量,Linux系统各指标命令 2019-04-21
linux打印机守护程序,linux下怎么编写守护程序呢? 2019-04-21
嵌入式linux 设置时间,time_clock控件应用,使用命令date -s 12:00:00手动设置时间后,时间就停住不走了,我在Ubuntu和嵌入式Linux平台都测试到了... 2019-04-21
linux 8086下编译,Ubuntu18.04/Linux下安装DosBox进行8086汇编 2019-04-21
linux监控windows,zabbix监控之linux及windows客户端安装配置 2019-04-21
linux中怎么卸载tree,Liunx系统命令中tree命令详解 2019-04-21
linux 网络音箱 混音6,Linux音频编程(三)混音器介绍 2019-04-21
node与mysql开源_node与mysql的相互使用————node+mysql 2019-04-21
python合并列表重新排序_python – 将两个已排序的列表合并为一个更大的排序列表... 2019-04-21
vbs用mysql语句查询数据库_vbs脚本实现window环境下的mysql数据库的备份及删除早期备份... 2019-04-21
mysql连接nginx_nginx四层负载均衡连接mysql 2019-04-21
mysql截取栏目字符_substring从指定字符串开始截取(图) 2019-04-21
python 函数参数前面两个星号_Python中参数前面一个星号两个星号(*参数,**参数)起什么作用呢?... 2019-04-21
python类属性初始化_Python类定义、属性、初始化和析构 2019-04-21
mysql构建url给scrapy_Python Scrapy从mysq填充起始url 2019-04-21
owdcloud mysql_MySQL在Ubuntu远程配置 2019-04-21