获取年度周数和每个周的开始时间和结束时间
来源:互联网 发布:淘宝流量如何提升 编辑:程序博客网 时间:2024/05/16 01:34
package com.mecool.swmp.util;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class WeeksUtil {
/**
* 获取某年某周的起始时间和结束时间
*
* @param year
* @param weekindex
* @return
*/
public static String[] getDayOfWeek(int year, int weekindex) {
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
Calendar c = Calendar.getInstance();
c.setWeekDate(year, weekindex, 1);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK) - 2;
c.add(Calendar.DATE, -dayOfWeek); // 得到本周的第一天
String begin = sdf.format(c.getTime());
c.add(Calendar.DATE, 6); // 得到本周的最后一天
String end = sdf.format(c.getTime());
String[] range = new String[2];
range[0] = begin;
range[1] = end;
return range;
}
/**
* 获取指定年份的总周数
* @param date
* @return
* @throws Exception
*/
public static int getYearWeek (String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date s = sdf.parse(date);
Calendar ca = Calendar.getInstance();
ca.setTime(s);
ca.setFirstDayOfWeek(Calendar.MONDAY);
int weeks = ca.getActualMaximum(Calendar.WEEK_OF_YEAR);
return weeks;
}
/**
* 页面调用select周数集合
* @return
* @throws Exception
*/
public static List<CodeNameKv> getAllWeeksAndDates() throws Exception{
List<CodeNameKv> codeNameKvList =new ArrayList<CodeNameKv>();
SimpleDateFormat df = new SimpleDateFormat("yyyy");//设置日期格式
Integer curYear = Integer.valueOf(df.format(new Date()));
//遍历当前年份及之后的年份到05年结束
for(int i=curYear;i>2007;i--){
//获取年的总周数
int weeksOfyearTotal = WeeksUtil.getYearWeek(String.valueOf(i));
//当前日期所在多少周
int weeksOfyearCurDate = Calendar.getInstance().get(Calendar.WEEK_OF_YEAR);
//排除当前时间以后具体周总数
int weeks;
if(curYear==i){
weeks=weeksOfyearCurDate;
}else{
weeks=weeksOfyearTotal;
}
//遍历本年度所有周数
for(int j=weeks;j>=1;j--){
//获取某年,某周的开始日期和结束日期
String[] str = WeeksUtil.getDayOfWeek(i,j);
String weekStart = str[0];
String weekEnd = str[1];
String code=i+"-"+weekStart+"&"+i+"-"+weekEnd;
String name=i+"年"+j+"周"+"("+weekStart+"/"+weekEnd+")";
CodeNameKv kv=new CodeNameKv(code, name);
codeNameKvList.add(kv);
}
}
return codeNameKvList;
}
public static void main(String[] args) throws Exception {
List<CodeNameKv> list = WeeksUtil.getAllWeeksAndDates();
System.out.println(list.size());
}
}
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class WeeksUtil {
/**
* 获取某年某周的起始时间和结束时间
*
* @param year
* @param weekindex
* @return
*/
public static String[] getDayOfWeek(int year, int weekindex) {
SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
Calendar c = Calendar.getInstance();
c.setWeekDate(year, weekindex, 1);
int dayOfWeek = c.get(Calendar.DAY_OF_WEEK) - 2;
c.add(Calendar.DATE, -dayOfWeek); // 得到本周的第一天
String begin = sdf.format(c.getTime());
c.add(Calendar.DATE, 6); // 得到本周的最后一天
String end = sdf.format(c.getTime());
String[] range = new String[2];
range[0] = begin;
range[1] = end;
return range;
}
/**
* 获取指定年份的总周数
* @param date
* @return
* @throws Exception
*/
public static int getYearWeek (String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date s = sdf.parse(date);
Calendar ca = Calendar.getInstance();
ca.setTime(s);
ca.setFirstDayOfWeek(Calendar.MONDAY);
int weeks = ca.getActualMaximum(Calendar.WEEK_OF_YEAR);
return weeks;
}
/**
* 页面调用select周数集合
* @return
* @throws Exception
*/
public static List<CodeNameKv> getAllWeeksAndDates() throws Exception{
List<CodeNameKv> codeNameKvList =new ArrayList<CodeNameKv>();
SimpleDateFormat df = new SimpleDateFormat("yyyy");//设置日期格式
Integer curYear = Integer.valueOf(df.format(new Date()));
//遍历当前年份及之后的年份到05年结束
for(int i=curYear;i>2007;i--){
//获取年的总周数
int weeksOfyearTotal = WeeksUtil.getYearWeek(String.valueOf(i));
//当前日期所在多少周
int weeksOfyearCurDate = Calendar.getInstance().get(Calendar.WEEK_OF_YEAR);
//排除当前时间以后具体周总数
int weeks;
if(curYear==i){
weeks=weeksOfyearCurDate;
}else{
weeks=weeksOfyearTotal;
}
//遍历本年度所有周数
for(int j=weeks;j>=1;j--){
//获取某年,某周的开始日期和结束日期
String[] str = WeeksUtil.getDayOfWeek(i,j);
String weekStart = str[0];
String weekEnd = str[1];
String code=i+"-"+weekStart+"&"+i+"-"+weekEnd;
String name=i+"年"+j+"周"+"("+weekStart+"/"+weekEnd+")";
CodeNameKv kv=new CodeNameKv(code, name);
codeNameKvList.add(kv);
}
}
return codeNameKvList;
}
public static void main(String[] args) throws Exception {
List<CodeNameKv> list = WeeksUtil.getAllWeeksAndDates();
System.out.println(list.size());
}
}
0 0
- 获取年度周数和每个周的开始时间和结束时间
- 获取当前时间的天、周、月、季度、半年度、年度开始和结束时间
- java 获取当前时间的天、周、月、季度、半年度、年度开始和结束时间
- 获取某年某一周的开始和结束时间
- 根据开始和结束时间,计算出该时间段每个星期的开始和结束时间
- 获取当天的开始和结束时间
- 输入开始时间和结束时间获取之间相隔的天数,月数,年数
- 周的开始和结束时间
- JAVA通过某年的几周获取该周的开始时间和结束时间
- js获取当天 当周 当月的开始时间和结束时间
- 获取上一月的开始时间和结束时间
- 获取某星期的开始时间和结束时间
- java8 获取当天的开始时间和结束时间
- php获取当前月的开始时间和结束时间,获取当天的开始时间和结束时间
- 本周的开始时间和结束时间
- 根据指定日期获取周,月,年的开始和结束时间
- PHP获取今天开始和结束的时间戳
- PHP 获取指定年月日的开始和结束时间戳
- unbindService()导致应用Crash的问题
- win7(64位)安装搭建php-5.5.10 apache2.4.7 mysql-5.6.16 环境
- map和hashmap
- BufferedWriter 的 flush() 方法
- Python线程指南
- 获取年度周数和每个周的开始时间和结束时间
- linux学习(二) scp命令详解
- C#多线程 BackgroundWorker类使用小例-WPF程序
- jboss log4j配置
- Linux中date命令用法及大小比较
- 最大子列和问题
- 在Eclipse中搭建quick-cocos2d-x的lua开发环境
- ZendStudio导入一个已有的网站
- Android.mk file syntax specification