package com.deta.demo;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* 指定月份获取每周开始和截止时间,不足一周下个月的补足一周,以周六为标准
* @author Administrator
*
*/
public class a {
private static int year = 2017;// 年
private static int month = 8;// 月
private static int day = 1;// 日 月第一天
private static int startmDay = 1;//
private static int mDay = 0;// 月第一天相应的星期几转成整数
private static int weekDay = 7;// 一周几天
private static String startWeek;// 每周的开始的星期
private static int change = 1;// //【特别说明:例子是以周六为基础;周六前就减去1(五),2(四),3(三),4(二),5(一),周日后就加1】

public static void main(String[] args) {/*** 系统时间当月天数*/int currentMaxmDays = getCurrentMonthmDay();System.out.println("系统时间当月天数:" + currentMaxmDays);/*** 获取指定月数的天数*/int maxmDaysByDate = getmDaysByYearMonth(year, month);System.out.println(year + "年" + month + "月天数:" + maxmDaysByDate);/*** 获取指定月数第一天是周几*/String week_01 = getmDayOfWeekByDate(year + "-" + month + "-" + day);System.out.println(year + "-" + month + "-01是:" + week_01);System.out.println(week_01 + "的数字标识是:" + getDay(week_01));/*** 获取指定月数最后一天是周几*/String week = getmDayOfWeekByDate(year + "-" + month + "-"+ maxmDaysByDate);System.out.println(year + "-" + month + "-" + maxmDaysByDate + "是:"+ week);/*** 本月第一周第一天的计算开始星期*/startWeek = getWeek(weekDay - (startmDay % weekDay) - change);System.out.println(month + "月第一周第一天是:" + startWeek);/*** 本月第一周第一天的日期* */int a = getDay(startWeek) - getDay(week_01);a = a + day;System.out.println(month + "月第一周第一天的日期:" + year + "-" + month + "-" + a);/*** 开始计算有几周,*/int b = maxmDaysByDate - a;int c = b / weekDay;int d = b % weekDay;/*** 打印每周的起止时间*/if (d != 0) {c = c + 1;System.out.println(month + "月有" + c + "周,余" + d + "天");}for (int i = 1; i <= c; i++) {String title = month + "月第" + i + "周开始和截止日期:";if (i == 1) {System.out.println(title + year + "-" + month + "-" + a + ";"+ year + "-" + month + "-" + (a + weekDay * i - 1));} else if (i == c) {String startMouth = year + "-" + month + "-"+ (a + weekDay * (i - 1));int endDay = (a + weekDay * i - 1);if (endDay > maxmDaysByDate) {month = month + 1;endDay = endDay - maxmDaysByDate;if (month > 12) {year = year + 1;month = 1;}}String endMouth = +year + "-" + month + "-" + endDay;System.out.println(title + startMouth + ";" + endMouth);} else {System.out.println(title + year + "-" + month + "-"+ (a + weekDay * (i - 1)) + ";" + year + "-" + month+ "-" + (a + weekDay * i - 1));}}
}/*** 跟均星期几获取当前值mDay的值*/
public static int getDay(String week) {if (week.equals("星期一")) {mDay = 1;} else if (week.equals("星期二")) {mDay = 2;} else if (week.equals("星期三")) {mDay = 3;} else if (week.equals("星期四")) {mDay = 4;} else if (week.equals("星期五")) {mDay = 5;} else if (week.equals("星期六")) {mDay = 6;} else if (week.equals("星期日")) {mDay = 7;}return mDay;
}/*** 根据startmDay的值获取星期几*/
public static String getWeek(int mDay) {System.out.println(mDay);switch (mDay) {case 1:startWeek = "星期一";break;case 2:startWeek = "星期二";break;case 3:startWeek = "星期三";break;case 4:startWeek = "星期四";break;case 5:startWeek = "星期五";break;case 6:startWeek = "星期六";break;case 7:startWeek = "星期日";break;default:break;}return startWeek;
}/*** 获取当月的 天数* */
public static int getCurrentMonthmDay() {Calendar a = Calendar.getInstance();a.set(Calendar.DATE, 1);a.roll(Calendar.DATE, -1);int maxDate = a.get(Calendar.DATE);return maxDate;
}/*** 根据年 月 获取对应的月份 天数* */
public static int getmDaysByYearMonth(int year, int month) {Calendar a = Calendar.getInstance();a.set(Calendar.YEAR, year);a.set(Calendar.MONTH, month - 1);a.set(Calendar.DATE, 1);a.roll(Calendar.DATE, -1);int maxDate = a.get(Calendar.DATE);return maxDate;
}/*** 根据日期 找到对应日期的 星期*/
public static String getmDayOfWeekByDate(String date) {String mDayOfweek = "-1";try {SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");Date myDate = myFormatter.parse(date);SimpleDateFormat formatter = new SimpleDateFormat("E");String str = formatter.format(myDate);mDayOfweek = str;} catch (Exception e) {System.out.println("错误!");}return mDayOfweek;
}

}

指定月份获取每周开始和截止时间,不足一周下个月的补足一周,以周六为标准相关推荐

  1. JAVA 获取指定月份的每周的开始日期和结束日期

    1.第一种情况,从1号开始到月份最后一天结束 代码如下: private DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPatte ...

  2. DateUtils 工具类:获取指定月份第一天时间,最后一天时间

    获取指定月份第一天时间 getMinDateMonth ,最后一天时间 getMaxDateMonth ,将时间区间按照月份分组,拆分多个片段 getDateSplitMonth 指定月份的下个月 g ...

  3. oracle通过指定的时间获取时间所在的季度、上半年、下半年、年的月份、指定月份的上一个月份

    1.获得根据时间获得该季度所在的月份: SELECT to_char(add_months(TRUNC(to_date('2020-07-01 00:00:00','yyyy-mm-dd hh24:m ...

  4. Java获取指定月份的最后一天

    https://blog.csdn.net/itmyhome1990/article/details/85619804 Java获取指定月份的最后一天 麦田 2019-01-02 17:43:38   ...

  5. PHP获取上月月初和月末时间,获取指定时间的月初以及月末时间

    在一些项目中我们可能会用到月初以及月末时间,这里给大家整理了一些,废话不多说直接上代码 //上月开始时间 $firstday = date('Y-m-01 00:00:00', strtotime(d ...

  6. js获取本月或指定月份的最后一天

    自定义方法,用于获取本月或指定月份的最后一天,如果不传参数,就是当前月: function getMonthFinalDay(year,month){var day='';if(year==null ...

  7. js月份的计算公式_JS获取指定月份的天数几种方法

    最近看到一个有意思的试题,正好在需求中也碰到类似的问题,即计算某个月的天数问题.碰到类似问题也许大部分会想是不是还要判断闰年.平年,如果这样想的话就复杂了,下面给出具体的计算方法. 获取月份天数方法一 ...

  8. 按照指定起始和截止时间分割视频

    最近有想要按照指定起始和截止时间分割视频的需求,看了一些帖子推荐使用ffmpeg,但是分割的不够精确,有的视频段(几秒钟的那种)出现黑屏的情况,好像是因为ffmpeg提取关键帧的方法导致的,所以想要换 ...

  9. moment 获取常用时间范围(本月、上月、本季度、本周、昨天、距离截止时间剩余...等)

    moment 当前时间 昨天 本周 上周 本月 上月 本季度 上季度 本年 上年 距离截止时间剩余 当前时间 const startTime = moment(moment().valueOf()). ...

最新文章

  1. SRM 721 DIV2
  2. 矩形在as3视觉编程中的几个应用方式
  3. 分享一款颜色神器ColorSchemer Studio
  4. Redis Cluster日常操作命令梳理
  5. sed教程(七)之特殊字符
  6. org.springframework.dao.IncorrectResultSizeDataAccessException: query did not return a unique result
  7. PDF如何编辑,怎么删除空白页面
  8. python int函数的实现_python实现int函数的案例分析
  9. 创建微服务多模块项目
  10. linux 文件目录对比,文件/目录对比:diff命令
  11. php英文商城,童装英文外贸网站系统
  12. 犹太人和你想的不一样
  13. 数学之美 第六章——信息的度量和作用
  14. Python3 __dict__与dir()区别,对象中私有属性的访问
  15. 【Google】【内部样式表】【外部样式表:听力地点方向题】【设置字体间距】【多类、子元素选择器】【网页设计与网站开发HTML、CSS、JavaScript】【第 8 章】CSS基础——实验题1-6
  16. java从页面下载pdf文件到本地
  17. 代码审计| HDWiki 漏洞(一)
  18. APS系统到底是什么?为什么许多企业纷纷选择APS系统?
  19. 项目中统一日志文件配置
  20. 函数式程序设计为什么至关重要(转载)

热门文章

  1. 云栖大会上,马云和王坚都说了啥?
  2. mongodb数据库的下载、安装、配置与使用
  3. 安装torch0.4.1的神坑
  4. DO DIFFERENT TRACKING TASKS REQUIRE DIFFERENT APPEARANCE MODELS?——阅读笔记
  5. 在Latex论文下方添加copyright
  6. iphone同步钱包_Apple“钱包”原来这么好用、方便
  7. DNS协议与请求的C语言实现
  8. 新三板上市和主板上市的区别主要是什么?
  9. ubuntu linux通过rclone 挂载onedrive 到本地磁盘
  10. 博学谷python_2020年最新博学谷Python基础班,资源教程下载