指定月份获取每周开始和截止时间,不足一周下个月的补足一周,以周六为标准
2017-07-31 16:43
736 查看
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】
}
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; }
}
相关文章推荐
- PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
- PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
- php获取指定月份的第一天开始和最后一天结束的时间戳
- PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
- android 获取指定月份的开始时间 结束时间
- php 获取指定月份的开始结束时间
- PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
- PHP获取指定月份的第一天开始和最后一天结束的时间戳函数
- 某一天是当月的第几周,获取当月共有几周,获取某一周是的开始时间和结束时间
- [php_13]PHP获取指定月份的月初月尾时间
- php获取指定日期所在星期的开始时间与结束时间
- 获取指定月份月初,月末时间
- C#获取指定月指定周的日期范围 根据当前时间获取本月开始日期和结束日期
- C#获取指定月指定周的日期范围 根据当前时间获取本月开始日期和结束日期
- 根据传入的年份和月份获取该月属于本年的第几周和每周的开始和结束日期
- 输出从指定开始时间到指定截止时间的所有日期
- 获取指定时间所在周的开始、结束时间
- php获取指定日期的一周开始及结束日期,支持一周是从周几开始
- 根据指定日期获取周,月,年的开始和结束时间
- 获取到指定时间区间的月份集合,以及月份集合的月份第一天和最后一天