怎样用计算一月有多少周,然后根据当月的周数计算当周的开始和结束日期 最好用Calendar类来实现,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package com.baidu;import java.text.DateFormatSymbols;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.GregorianCalendar;public class Test { //输入一个月份,判断周数 public static void main(String args[]) throws Exception{ Calendar c_now = new GregorianCalendar(); Calendar c_begin = new GregorianCalendar(); Calendar c_end = new GregorianCalendar(); DateFormatSymbols dfs = new DateFormatSymbols(); String[] weeks = dfs.getWeekdays(); //设置参数,年,月 String date = "2010-5-5"; SimpleDateFormat df =new SimpleDateFormat("yyyy-M-d"); java.util.Date cDate = df.parse(date); c_now.setTime(cDate); int year=c_now.get(Calendar.YEAR); int month = c_now.get(Calendar.MONTH)+1; int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if (year % 4==0) days[2]=29;//大年 c_begin.set(2010, month-1, 1); //月 0-11 天 0- c_end.set(2010, month-1, days[month]); int count = 1; c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天 while(c_begin.before(c_end)){ System.out.println("第"+count+"周 日期:"+new java.sql.Date(c_begin.getTime().getTime())+", "+weeks[c_begin.get(Calendar.DAY_OF_WEEK)]); if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){ count++; } c_begin.add(Calendar.DAY_OF_YEAR, 1); } System.out.println("共计(跨越):"+(count-1) +"周"); } }第1周 日期:2010-05-01, 星期六第1周 日期:2010-05-02, 星期日第2周 日期:2010-05-03, 星期一第2周 日期:2010-05-04, 星期二第2周 日期:2010-05-05, 星期三第2周 日期:2010-05-06, 星期四第2周 日期:2010-05-07, 星期五第2周 日期:2010-05-08, 星期六第2周 日期:2010-05-09, 星期日第3周 日期:2010-05-10, 星期一第3周 日期:2010-05-11, 星期二第3周 日期:2010-05-12, 星期三第3周 日期:2010-05-13, 星期四第3周 日期:2010-05-14, 星期五第3周 日期:2010-05-15, 星期六第3周 日期:2010-05-16, 星期日第4周 日期:2010-05-17, 星期一第4周 日期:2010-05-18, 星期二第4周 日期:2010-05-19, 星期三第4周 日期:2010-05-20, 星期四第4周 日期:2010-05-21, 星期五第4周 日期:2010-05-22, 星期六第4周 日期:2010-05-23, 星期日第5周 日期:2010-05-24, 星期一第5周 日期:2010-05-25, 星期二第5周 日期:2010-05-26, 星期三第5周 日期:2010-05-27, 星期四第5周 日期:2010-05-28, 星期五第5周 日期:2010-05-29, 星期六第5周 日期:2010-05-30, 星期日第6周 日期:2010-05-31, 星期一共计(跨越):5周 public static void getWeekDay(Date date) throws ParseException{ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM") ; String dateStr = dateFormat.format(date) ; int m = 31 ; for (int i = 1; i <= m; i++) { Date date2 = null ; String dateStr2 ="" ; if(i<10) dateStr2 =dateStr+"-0"+i; else dateStr2 =dateStr+"-"+i; date2 = new SimpleDateFormat("yyyy-MM-dd").parse(dateStr2); if(dateStr.equals(dateFormat.format(date2))) System.out.println(dateStr2+"__________"+new SimpleDateFormat("F").format(date2)+"_______"+new SimpleDateFormat("E").format(date2)); } }看看是否有用 Java编程问题 能不能让JAVA程序在IE中模拟鼠标的一些动作? 新年里怎么做这个程序? 多线程订票问题??为什么加了延时结果就正确了?? 如何去除字符串中的某个字符(可能有多个) 如何用java调用ie核心,开发浏览器,或者直接开发? 《Thinkin in Java》第8章课后第12题怎么也搞不定, 哪有Java Development Kit下载?我在sun网站上找了半天都找不到(100分马上给) 初学者问题:关于this 关于notify 请问如何使一个组件跟着鼠标箭头走啊? java二维数组的问题,高手请进!解决了高分相送!
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class Test {
//输入一个月份,判断周数
public static void main(String args[]) throws Exception{
Calendar c_now = new GregorianCalendar();
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] weeks = dfs.getWeekdays();
//设置参数,年,月
String date = "2010-5-5";
SimpleDateFormat df =new SimpleDateFormat("yyyy-M-d");
java.util.Date cDate = df.parse(date);
c_now.setTime(cDate);
int year=c_now.get(Calendar.YEAR);
int month = c_now.get(Calendar.MONTH)+1;
int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
if (year % 4==0) days[2]=29;//大年
c_begin.set(2010, month-1, 1); //月 0-11 天 0-
c_end.set(2010, month-1, days[month]); int count = 1;
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while(c_begin.before(c_end)){
System.out.println("第"+count+"周 日期:"+new java.sql.Date(c_begin.getTime().getTime())+", "+weeks[c_begin.get(Calendar.DAY_OF_WEEK)]);
if(c_begin.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
count++;
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
System.out.println("共计(跨越):"+(count-1) +"周");
}
}第1周 日期:2010-05-01, 星期六
第1周 日期:2010-05-02, 星期日
第2周 日期:2010-05-03, 星期一
第2周 日期:2010-05-04, 星期二
第2周 日期:2010-05-05, 星期三
第2周 日期:2010-05-06, 星期四
第2周 日期:2010-05-07, 星期五
第2周 日期:2010-05-08, 星期六
第2周 日期:2010-05-09, 星期日
第3周 日期:2010-05-10, 星期一
第3周 日期:2010-05-11, 星期二
第3周 日期:2010-05-12, 星期三
第3周 日期:2010-05-13, 星期四
第3周 日期:2010-05-14, 星期五
第3周 日期:2010-05-15, 星期六
第3周 日期:2010-05-16, 星期日
第4周 日期:2010-05-17, 星期一
第4周 日期:2010-05-18, 星期二
第4周 日期:2010-05-19, 星期三
第4周 日期:2010-05-20, 星期四
第4周 日期:2010-05-21, 星期五
第4周 日期:2010-05-22, 星期六
第4周 日期:2010-05-23, 星期日
第5周 日期:2010-05-24, 星期一
第5周 日期:2010-05-25, 星期二
第5周 日期:2010-05-26, 星期三
第5周 日期:2010-05-27, 星期四
第5周 日期:2010-05-28, 星期五
第5周 日期:2010-05-29, 星期六
第5周 日期:2010-05-30, 星期日
第6周 日期:2010-05-31, 星期一
共计(跨越):5周
public static void getWeekDay(Date date) throws ParseException{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM") ;
String dateStr = dateFormat.format(date) ;
int m = 31 ;
for (int i = 1; i <= m; i++) {
Date date2 = null ;
String dateStr2 ="" ;
if(i<10)
dateStr2 =dateStr+"-0"+i;
else
dateStr2 =dateStr+"-"+i;
date2 = new SimpleDateFormat("yyyy-MM-dd").parse(dateStr2);
if(dateStr.equals(dateFormat.format(date2)))
System.out.println(dateStr2+"__________"+new SimpleDateFormat("F").format(date2)+"_______"+new SimpleDateFormat("E").format(date2));
}
}看看是否有用