1. java获取一年有多少周,某周的第一天和最后一天
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class Test {
// 获取当前时间所在年的周数
public static int getWeekOfYear(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
c.setTime(date);
return c.get(Calendar.WEEK_OF_YEAR);
}
// 获取当前时间所在年的最大周数
public static int getMaxWeekNumOfYear(int year) {
Calendar c = new GregorianCalendar();
c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
return getWeekOfYear(c.getTime());
}
// 获取某年的第几周的开始日期
public static Date getFirstDayOfWeek(int year, int week) {
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, 1);
Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, week * 7);
return getFirstDayOfWeek(cal.getTime());
}
// 获取某年的第几周的结束日期
public static Date getLastDayOfWeek(int year, int week) {
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, 1);
Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, week * 7);
return getLastDayOfWeek(cal.getTime());
}
// 获取当前时间所在周的开始日期
public static Date getFirstDayOfWeek(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday
return c.getTime();
}
// 获取当前时间所在周的结束日期
public static Date getLastDayOfWeek(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday
return c.getTime();
}
public static void main(String[] args) {
int year = 2015;
int week = 27;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date today = new Date();
Calendar c = new GregorianCalendar();
c.setTime(today);
System.out.println("当前时间:current date = " + sdf.format(today));
System.out.println("当前第几周:getWeekOfYear = " + getWeekOfYear(today));
System.out.println("年度总周数:getMaxWeekNumOfYear = " + getMaxWeekNumOfYear(year));
System.out.println("本周第一天:getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(year, week)));
System.out.println("本周最后一天:getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(year, week)));
System.out.println("本周第一天:getFirstDayOfWeek = " + sdf.format(getFirstDayOfWeek(today)));
System.out.println("本周最后一天:getLastDayOfWeek = " + sdf.format(getLastDayOfWeek(today)));
}
}
//输出结果:
// 当前时间:current date = 2015-07-07 16:35:07
// 当前第几周:getWeekOfYear = 27
// 年度总周数:getMaxWeekNumOfYear = 52
// getFirstDayOfWeek = 2015-07-06 16:35:07
// getLastDayOfWeek = 2015-07-12 16:35:07
// getFirstDayOfWeek = 2015-07-06 16:35:07
// getLastDayOfWeek = 2015-07-12 16:35:07
2. JAVA 计算某年某周的第一天和最后一天
/**
* 求某年下的第几个星期的日期 返回java.uilt.Date 类型日期 时间time为当前机器时间
* @param year 要获得的年
* @param week 第几个星期
* @param flag 是否是第一天还是最后一天,当为true时返回第一天,false则返回最后一天
* @return java.uilt.Date 类型日期
* @例如 getDayByWeek(2002,2,true) 返回Tue Jan 08 14:11:57 CST 2002
*/
public static Date getDayByWeek(int year,int week,boolean flag)
{
Calendar cal=Calendar.getInstance();
cal.set(Calendar.YEAR,year);
cal.set(Calendar.WEEK_OF_YEAR,week);
if(!flag)
cal.setTimeInMillis(cal.getTimeInMillis()+6*24*60*60*1000);
return cal.getTime();
}
3. java 怎么根据第几年的第几周获取那周周一的时期
1、使用Calendar类。
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2016); // 2016年
cal.set(Calendar.WEEK_OF_YEAR, 10); // 设置为2016年的第10周
cal.set(Calendar.DAY_OF_WEEK, 2); // 1表示周日,2表示周一,7表示周六
Date date = cal.getTime();
以上就能得到2016年第10周的周一的Date时间。
注:上面代码是手工敲的,没有放到eclipse中运行,有写错的地方请谅解
4. java中如何计算本周开始和结束的日期
思路:首先是获取该月的实际天数,然后从1号遍历直至该月最后一天,利用Calendar类找出该日是一周中的第几天,
(1)若该日是周日,则视为一周结束,并用该日期减去6找到该周的开始日期,若相减结果小于等于1,则说明该周起始日期应该是本月1号。
(1)若该日不是周日,且是该月最后一天,则应该在上面计算的基础上再加一周,视月末为该周的结束日,该周起始日期应为改日期减去改日
在一周中的位置加2,例如:2013-09-30号是周一,则视为9月份中的第六周,开始日期是30-2+2
提示:Calendar 类中视周日为一周的开始,值是1
示例代码:
[java] view plain
public static void printfWeeks(String date) throws Exception {
// String date = "2013-09";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
Date date1 = dateFormat.parse(date);
Calendar calendar = new GregorianCalendar();
calendar.setTime(date1);
int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println("days:" + days);
int count = 0;
for (int i = 1; i <= days; i++) {
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = dateFormat1.parse(date + "-" + i);
calendar.clear();
calendar.setTime(date2);
int k = new Integer(calendar.get(Calendar.DAY_OF_WEEK));
if (k == 1) {// 若当天是周日
count++;
System.out.println("-----------------------------------");
System.out.println("第" + count + "周");
if (i - 6 <= 1) {
System.out.println("本周开始日期:" + date + "-" + 1);
} else {
System.out.println("本周开始日期:" + date + "-" + (i - 6));
}
System.out.println("本周结束日期:" + date + "-" + i);
System.out.println("-----------------------------------");
}
if (k != 1 && i == days) {// 若是本月最好一天,且不是周日
count++;
System.out.println("-----------------------------------");
System.out.println("第" + count + "周");
System.out.println("本周开始日期:" + date + "-" + (i - k + 2));
System.out.println("本周结束日期:" + date + "-" + i);
System.out.println("-----------------------------------");
}
}
}
测试代码:
[java] view plain
public static void main(String[] args) throws Exception {
String s = "2013-";
for (int i = 1; i <= 12; i++) {
System.out.println("*******************************************");
System.out.println("月份:" + i);
printfWeeks(s + i);
System.out.println("*******************************************");
}
// printfWeeks(s + 2);
}
5. java 如何获取 上周一日期,上周末日期,本周一日期。
获取本周一
(Datedate){
Calendarcal=Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_MONTH,-1);//解决周日会出现并到下一周的情况
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
303returncal.getTime();
}
获取上周一
(Datedate){
Datea=DateUtils.addDays(date,-1);
Calendarcal=Calendar.getInstance();
cal.setTime(a);
cal.add(Calendar.WEEK_OF_YEAR,-1);//一周
cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
returncal.getTime();
}
获取上周日
(Datedate){
Datea=DateUtils.addDays(date,-1);
Calendarcal=Calendar.getInstance();
cal.setTime(a);
cal.set(Calendar.DAY_OF_WEEK,1);
returncal.getTime();
}
代码里面有用到lapache.common-ang包 你需要下载下 就可以使用
6. java 日期,根据今天的日期,输出这一周的其他日期,例如:2013-7-31,输出这周从第一天开始到今天的日期
public static void main(String[] agrs) {
String newtime="2013-8-4";
System.out.println(newtime+""+testDate(newtime));
}
public static String testDate(String newtime) {
String dayNames[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
int week1[] = {7,1,2,3,4,5,6};
Calendar c = Calendar.getInstance();// 获得一个日历的实例
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
c.setTime(sdf.parse(newtime));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String a=dayNames[c.get(Calendar.DAY_OF_WEEK)-1];
int b=week1[c.get(Calendar.DAY_OF_WEEK)-1];
if(b!=7){
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
}else{
c.add(Calendar.WEEK_OF_MONTH, -1);
c.set(Calendar.DAY_OF_WEEK, 2);
}
for(int i=1;i<b;i++){
if(i==1){
System.out.println(sdf.format(c.getTime()));//本周一
}
c.add(Calendar.DATE,1);
System.out.println(sdf.format(c.getTime()));
}
System.out.println("-------------");
return a;
}
测试结果:
2013-07-29
2013-07-30
2013-07-31
2013-08-01
2013-08-02
2013-08-03
2013-08-04
-------------
2013-8-4星期日
7. java 日期 下一周的第一天 最后一天 分别是多少号
国外一周的开始是从星期日,结束是星期六;而国内一周开始为星期一,结束为星期日,所以分别按两个方式处理:
1,国外日期格式
代码为:
Calendar calendar = new GregorianCalendar(); //获取当前日期
System.out.println(calendar.getTime()); //打印当前日期
calendar.add(Calendar.DAY_OF_WEEK,7-calendar.get(Calendar.DAY_OF_WEEK)+1);
System.out.println(calendar.getTime()); //打印下周日的日期
calendar.add(Calendar.DAY_OF_WEEK, 6);
System.out.println(calendar.getTime()); //打印下周六的日期
代码解释:
Calendar 自身带了很多对日期处理的方法,add方法是将当前日期按照年、月、日向后增加时间。“calendar.get(Calendar.DAY_OF_WEEK)”意思是今天是本周的第几天。“7-calendar.get(Calendar.DAY_OF_WEEK)"意思为本周还剩多少天,再加1表示距离下周星期日还有多少天。calendar.add(Calendar.DAY_OF_WEEK,7-calendar.get(Calendar.DAY_OF_WEEK)+1)意思是在今天的日期上向后推进到下周日,Calendar 会自动进行运算。此时Calendar保存的是下周日的日期,计算出下周六的日期只需再加6即可。
2,国内日期格式
代码为:
Calendar calendar = new GregorianCalendar(); //获取当前日期
System.out.println(calendar.getTime()); //打印当前日期
calendar.add(Calendar.DAY_OF_WEEK,7-calendar.get(Calendar.DAY_OF_WEEK)+2);
System.out.println(calendar.getTime()); //打印下周一的日期
calendar.add(Calendar.DAY_OF_WEEK, 6);
System.out.println(calendar.getTime()); //打印下周日的日期
执行结果:
Mon Feb 25 16:25:01 CST 2013 //当前日期:2月25号 星期1
Mon Mar 04 16:25:01 CST 2013 //下周一日期:3月4号 星期1
Sun Mar 10 16:25:01 CST 2013 //下周日日期:3月10号 星期天
8. 求java或者sql语句获取本周第一天与最后一天的日期 数据库为my sql
select next_day(sysdate, '星期日'), next_day(sysdate, '星期日')-6 from al
9. Java中获取本周内所有日期
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
publicclassDataTest{
publicstaticvoidmain(String[]args){
printWeekdays();
}
privatestaticfinalintFIRST_DAY=Calendar.MONDAY;
(){
Calendarcalendar=Calendar.getInstance();
setToFirstDay(calendar);
for(inti=0;i<7;i++){
printDay(calendar);
calendar.add(Calendar.DATE,1);
}
}
(Calendarcalendar){
while(calendar.get(Calendar.DAY_OF_WEEK)!=FIRST_DAY){
calendar.add(Calendar.DATE,-1);
}
}
privatestaticvoidprintDay(Calendarcalendar){
SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMddEE");
System.out.println(dateFormat.format(calendar.getTime()));
}
}
10. java 获取当前日期时间和本周的星期一的日期时间
提倡了一下中文写,...
static public void main(String 参数[]){
SimpleDateFormat 格式=new SimpleDateFormat("y年M月d日 E H时m分s秒",Locale.CHINA);
Calendar 日历=Calendar.getInstance(Locale.CHINA);
//当前时间,貌似多余,其实是为了所有可能的系统一致
日历.setTimeInMillis(System.currentTimeMillis());
System.out.println("当前时间:"+格式.format(日历.getTime()));
日历.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
System.out.println("周一时间:"+格式.format(日历.getTime()));
}
===========
改到后天测了一下
输出
当前时间:2011年8月31日 星期三 12时32分40秒
周一时间:2011年8月29日 星期一 12时32分40秒