Systemoutprintln(calget(CalendarMONDAY)+1+"月"+(calget(CalendarDAY_OF_MONTH)+1)+"日"); //输出日期
你第一问需要思考一下,你第二问日历类直接get即可!
第一问:
年末与年初进行周与周重叠的时候,获取的是第二年的第一周数字,这个时候其实很简单,因为月份是绝对不相同的对不
直接判断月份即可,头年月份肯定不会第二年月份想等,在同时判断一下,周是否为1,条件同时达到,就叠加52即可!
截个图,你参照日历看一下,分毫不差:
要获得第几周的信息,可以使用Calendar类的get方法,并将参数指定为 CalendarWEEK_OF_MONTH或者WEEK_OF_YEAR
例子代码
public class Main {/
@param args the command line arguments
/
public static void main(String[] args) {
Calendar cal = CalendargetInstance();
Systemoutprintln("Current week of month: " + calget(CalendarWEEK_OF_MONTH));
Systemoutprintln("Current week of year: " + calget(CalendarWEEK_OF_YEAR));
}
}
获取本周一
public static Date getNowWeekMonday(Date date) {Calendar cal = CalendargetInstance();
calsetTime(date);
caladd(CalendarDAY_OF_MONTH, -1); //解决周日会出现 并到下一周的情况
calset(CalendarDAY_OF_WEEK, CalendarMONDAY);
303 return calgetTime();
}
获取上周一
public static Date getLastWeekMonday(Date date) {Date a = DateUtilsaddDays(date, -1);
Calendar cal = CalendargetInstance();
calsetTime(a);
caladd(CalendarWEEK_OF_YEAR, -1);// 一周
calset(CalendarDAY_OF_WEEK, CalendarMONDAY);
return calgetTime();
}
获取上周日
public static Date getLastWeekSunday(Date date) {
Date a = DateUtilsaddDays(date, -1);
Calendar cal = CalendargetInstance();
calsetTime(a);
calset(CalendarDAY_OF_WEEK, 1);
return calgetTime();
}
代码里面有用到 lapachecommon-ang包 你需要下载下 就可以使用
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()));
}
}
java中Calendar类中给出了求第几天第几周的方法的,所以直接引用即可。
Calendar ca = CalendargetInstance();//创建一个日期实例
casetTime(new Date());//实例化一个日期
Systemoutprintln(caget(CalendarDAY_OF_YEAR));//获取是第多少天
Systemoutprintln(caget(CalendarWEEK_OF_YEAR));//获取是第几周
备注:此方法提供了很多方法,如查月,日等等。
Calendar cal = CalendargetInstance();
int i = 1;
//DAY_OF_WEEK获取当前时间是一个星期的第几天,星期日是第一天 星期一是第二天,以此类推
//CalendarMONDAY判断是不是星期1
while(calget(CalendarDAY_OF_WEEK) != CalendarMONDAY){
calset(CalendarDAY_OF_MONTH, i++);//设置这个月的星期1 为几号
}
Date firstMonday = calgetTime();//取得日期和时间
String dtStr = new SimpleDateFormat("MM月dd日")format(firstMonday);//格式化日期
Systemoutprintln(dtStr);
Calendar c_begin = CalendargetInstance();
Calendar c_end = CalendargetInstance();
c_beginset(2010, 3, 1); //Calendar的月从0-11,所以4月是3
c_endset(2010, 4, 20); //Calendar的月从0-11,所以5月是4
int count = 0;
while(c_beginbefore(c_end)){
//Systemoutprintln(new javasqlDate(c_begingetTime()getTime()));
if(c_beginget(CalendarDAY_OF_WEEK)==CalendarMONDAY){
count++;
}
if(count == 2){
Systemoutprintln(c_beginget(CalendarYEAR)+"年"+(c_beginget(CalendarMONTH)+1)+"月"+c_beginget(CalendarDATE)+"日");
break;
}
c_beginadd(CalendarDAY_OF_YEAR, 1);
}
可以这样试试,应该能理解吧。如有不懂再问我
以上就是关于java关于日期的一个小程序,帮忙改错,有注释。如何获取指定日期所在的周从哪一天开始全部的内容,包括:java关于日期的一个小程序,帮忙改错,有注释。如何获取指定日期所在的周从哪一天开始、java如何得到指定日期月的第几周按每年的1号为第一周开始算。、java 获取iso 标准的日期的第几周等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)