==我去给你写。等下贴给你。
/
传入一个月份,得到这个月份所有的周三,周四将其打印出来。
@param month 参数指定的月份
@throws Exception
/
private void getwendsor(int month) throws Exception
{
if(month<1||month>12)
throw new Exception("请指定一个合法的月份。");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Calendar cal=CalendargetInstance();
calset(CalendarMONTH,month-1);
calset(CalendarDAY_OF_MONTH, 1);
int day=1;
do
{
//Systemoutprintln(sdfformat(calgetTime())+" "+calget(CalendarDAY_OF_WEEK)+" "+CalendarWEDNESDAY);
if(calget(CalendarDAY_OF_WEEK)==CalendarWEDNESDAY)
Systemoutprintln(month+"月份的"+sdfformat(calgetTime())+ "是周三");
if(calget(CalendarDAY_OF_WEEK)==CalendarTHURSDAY)
Systemoutprintln(month+"月份的"+sdfformat(calgetTime())+ "是周四");
day++;
calset(CalendarDAY_OF_MONTH, day);
}while(calget(CalendarMONTH)+1==month);
}
这个方法是单独定义的,所以你可以随意调用,并且得到任意一个月份的周三或者周四。只需要在调用的时候指定您要查看的月份即可。
如果有疑问欢迎交流。呵呵
//输入日期取星期几的方法 public String getWeekDay(String DateStr){
SimpleDateFormat formatYMD=new SimpleDateFormat("yyyy-MM-dd");//formatYMD表示的是yyyy-MM-dd格式
SimpleDateFormat formatD=new SimpleDateFormat("E");//"E"表示"day in week"
Date d=null;
String weekDay="";try{d=formatYMDparse(DateStr);//将String 转换为符合格式的日期
weekDay=formatDformat(d);
}catch (Exception e){
eprintStackTrace();}//Systemoutprintln("日期:"+DateStr+" : "+weekDay);
return weekDay;
} //计算两个时间段中间的日期的方法
public String[][] findDates(String start_time, String end_time) throws ParseException {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date1= dfparse(start_time);
Date date2= dfparse(end_time);
int s = (int) ((date2getTime() - date1getTime())/ (24 60 60 1000));
String value[][] = new String[s+1][1];if(s+1>0){for(int i = 0;i<=s;i++){
long todayDate = date1getTime() + i 24 60 60 1000;
Date tmDate = new Date(todayDate);
Calendar cal = CalendargetInstance();
calclear();
calset(CalendarYEAR, 2014);
calset(CalendarWEEK_OF_YEAR,7);
calset(CalendarDAY_OF_WEEK, CalendarSUNDAY);
Systemoutprintln(calgetTime());
calset(CalendarDAY_OF_WEEK, CalendarSATURDAY);
Systemoutprintln(calgetTime());
import javatextSimpleDateFormat;
import javautilCalendar;
public class DataTest {
public static void main(String[] args) {
printWeekdays();
}
private static final int FIRST_DAY = CalendarMONDAY;
private static void printWeekdays() {
Calendar calendar = CalendargetInstance();
setToFirstDay(calendar);
for (int i = 0; i < 7; i++) {
printDay(calendar);
calendaradd(CalendarDATE, 1);
}
}
private static void setToFirstDay(Calendar calendar) {
while (calendarget(CalendarDAY_OF_WEEK) != FIRST_DAY) {
calendaradd(CalendarDATE, -1);
}
}
private static void printDay(Calendar calendar) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd EE");
Systemoutprintln(dateFormatformat(calendargetTime()));
}
}
/
获取两个日期相差的天数
@param big
@param small
@return
/
public static int getTwoDatesDifOfDay(Date big,Date small){
Calendar cal1 = CalendargetInstance();
cal1setTime(big);
Calendar cal2 = CalendargetInstance();
cal2setTime(small);
if(cal1get(CalendarMONTH) != 11 && cal2get(CalendarMONTH)==11){//跨年
Calendar cal3 = CalendargetInstance();
cal3set(CalendarMONTH, 11);
cal3set(CalendarDAY_OF_MONTH, 31);
return cal3get(CalendarDAY_OF_YEAR)-cal2get(CalendarDAY_OF_YEAR)+cal1get(CalendarDAY_OF_YEAR);
}else{
return cal1get(CalendarDAY_OF_YEAR)-cal2get(CalendarDAY_OF_YEAR);
}
}
/
获取两个日期相差的周数
@param big
@param small
@return
/
public static int getTwoDatesDifOfWeek(Date big,Date small){
Calendar cal1 = CalendargetInstance();
cal1setTime(big);
Calendar cal2 = CalendargetInstance();
cal2setTime(small);
if(cal1get(CalendarMONTH) != 11 && cal2get(CalendarMONTH)==11){//跨年
Calendar cal3 = CalendargetInstance();
cal3set(CalendarMONTH, 11);
cal3set(CalendarDAY_OF_MONTH, 31);
return cal3get(CalendarWEEK_OF_YEAR)-cal2get(CalendarWEEK_OF_YEAR)+cal1get(CalendarWEEK_OF_YEAR);
}else{
return cal1get(CalendarWEEK_OF_YEAR)-cal2get(CalendarWEEK_OF_YEAR);
}
}
我的程序是输入某年某周,输出这一周的开始日期和结束时期,不知是否符合你的需要。至少Java是不直接提供这种方法的。
import javautil;
public class Test31 {
public static void main(String[] args) {
int year, year1, year2, month1, month2, day1, day2, week, sum = 0;
int[] days = new int[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int i;
Scanner scan = new Scanner(Systemin);
Systemoutprint("年:");
year = scannextInt();
Systemoutprint("周次:");
week = scannextInt();
if (year < 0) {
Systemoutprintln("年份错误,必须大于等于0");
return;
}
if (week < 1 || week > 54) {
Systemoutprintln("周次错误,必须位于 1 53 之间");
return;
}
sum += 7 (week - 1);
//修正总天数
Calendar c = CalendargetInstance();
cset(year, 0, 1);
switch (cget(CalendarDAY_OF_WEEK))
{
case CalendarTUESDAY:
{
sum -= 1;
break;
}
case CalendarWEDNESDAY:
{
sum -= 2;
break;
}
case CalendarTHURSDAY:
{
sum -= 3;
break;
}
case CalendarFRIDAY:
{
sum -= 4;
break;
}
case CalendarSATURDAY:
{
sum -= 5;
break;
}
case CalendarSUNDAY:
{
sum -= 6;
break;
}
default:
break;
}
if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
days[1] = 29;
}
for (i = 0; i < dayslength; i++) {
if (sum >= days[i]) {
sum -= days[i];
}
else {
break;
}
}
year1 = year;
month1= i + 1;
day1 = sum + 1;
//修改开始日期
if (day1 < 1) {
day1 += days[11];
month1 = 12;
year1--;
}
year2 = year1;
month2 = month1;
day2 = day1 + 6;
if (day2 > days[month1 - 1]) {
day2 -= days[month1 - 1];
month2++;
if (month2 > 12) {
month2 = 1;
year2++;
}
}
Systemoutprintf("%d年第%d周 : %d年%d月%d日 ~ %d年%d月%d日", year, week, year1, month1, day1, year2, month2, day2);
}
}
输出测试:
年:2011
周次:22
2011年第22周 : 2011年5月23日 ~ 2011年5月29日
年:2011
周次:1
2011年第1周 : 2010年12月27日 ~ 2011年1月2日
这是从星期一至星期日。
也可以这样:
public static void main(String[] args){
Scanner scan = new Scanner(Systemin);
Systemoutprint("年:");
int year = scannextInt();
Systemoutprint("周:");
int week = scannextInt();
Calendar c = CalendargetInstance();
cset(CalendarDAY_OF_WEEK, 1);
cset(CalendarWEEK_OF_YEAR, week);
//该周第一天(星期日)所在的日期
int y1 = cget(CalendarYEAR);
int m1 = cget(CalendarMONTH) + 1;
int d1 = cget(CalendarDATE);
cadd(CalendarDATE, 6);
//该周最后一天(星期六)所在的日期
int y2 = cget(CalendarYEAR);
int m2 = cget(CalendarMONTH) + 1;
int d2 = cget(CalendarDATE);
Systemoutprintf("%d年第%d周:%d-%d-%d ~ %d-%d-%d", year, week, y1, m1, d1, y2, m2, d2);
}
这是从星期日开始,如:
年:2011
周:22
2011年第22周:2011-5-22 ~ 2011-5-28
以上就是关于Java获取月中周三和周四的日期全部的内容,包括:Java获取月中周三和周四的日期、java 输入日期取星期几的方法 计算两个时间段中间的、java 如何获取某一年中某一周的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)