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()));
}
}
参考一下:
import javatext;import javautilDate;
/
SimpleDateFormat函数语法:
G 年代标志符
y 年
M 月
d 日
h 时 在上午或下午 (1~12)
H 时 在一天中 (0~23)
m 分
s 秒
S 毫秒
E 星期
D 一年中的第几天
F 一月中第几个星期几
w 一年中第几个星期
W 一月中第几个星期
a 上午 / 下午 标记符
k 时 在一天中 (1~24)
K 时 在上午或下午 (0~11)
z 时区
/
public class FormatDateTime {
public static void main(String[] args) {
SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于nowtoLocaleString()
SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
SimpleDateFormat myFmt4=new SimpleDateFormat(
"一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
Date now=new Date();
Systemoutprintln(myFmtformat(now));
Systemoutprintln(myFmt1format(now));
Systemoutprintln(myFmt2format(now));
Systemoutprintln(myFmt3format(now));
Systemoutprintln(myFmt4format(now));
Systemoutprintln(nowtoGMTString());
Systemoutprintln(nowtoLocaleString());
Systemoutprintln(nowtoString());
}
}
你想要哪个值,就传对应的字母进去就行了。
上面魔法师的回答很精典,但是while循环可以更简洁些:
while(cget(CalendarYEAR)== year){ //只从输入的年份开始循环
if(cget(CalendarDAY_OF_WEEK)==3){
Systemoutprintln("星期二:"+fformat(cgetTime()));
}
cset(CalendarDATE,cget(CalendarDATE)+1);
}
//有一个问题是:在cset(year,1,1);语句中魔法师漏掉了一个月,应该是cset(year,0,1);否则就取不到1月份的日期了
import javatextSimpleDateFormat;
import javautilCalendar;
public class WeekDemo {
public static void main(String[] args) {
printWeeks();
}
public static void printWeeks() {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Calendar calendar = CalendargetInstance();
calendarset(CalendarDATE, 1);
int month = calendarget(CalendarMONTH);
int count = 0;
while (calendarget(CalendarMONTH) == month) {
if (calendarget(CalendarDAY_OF_WEEK) == CalendarMONDAY) {
StringBuilder builder = new StringBuilder();
builderappend("week:");
builderappend(++count);
builderappend(" (");
builderappend(formatformat(calendargetTime()));
builderappend(" - ");
calendaradd(CalendarDATE, 6);
builderappend(formatformat(calendargetTime()));
builderappend(")");
Systemoutprintln(buildertoString());
}
calendaradd(CalendarDATE, 1);
}
}
}
mport javatextSimpleDateFormat;
import javautilCalendar;
public class Test{
public static void main(String args[]){
Calendar cal = CalendargetInstance();
//n为推迟的周数,1本周,-1向前推迟一周,2下周,依次类推
int n = 2;
String monday;
caladd(CalendarDATE, n7);
//想周几,这里就传几CalendarMONDAY(TUESDAY)
calset(CalendarDAY_OF_WEEK,CalendarMONDAY);
monday = new SimpleDateFormat("yyyy-MM-dd")format(calgetTime());
Systemoutprintln(monday);
}
}
import javatextDateFormatSymbols;
import javautilCalendar;
import javautilGregorianCalendar;
public class Test {
/
@param args
/
public static void main(String[] args){
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
DateFormatSymbols dfs = new DateFormatSymbols();
String[] weeks = dfsgetWeekdays();
c_beginset(2010, 3, 2); //Calendar的月从0-11,所以4月是3
c_endset(2010, 4, 20); //Calendar的月从0-11,所以5月是4
int count = 1;
c_endadd(CalendarDAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while(c_beginbefore(c_end)){
Systemoutprintln("第"+count+"周 日期:"+new javasqlDate(c_begingetTime()getTime())+", "+weeks[c_beginget(CalendarDAY_OF_WEEK)]);
if(c_beginget(CalendarDAY_OF_WEEK)==CalendarSUNDAY){
count++;
}
c_beginadd(CalendarDAY_OF_YEAR, 1);
}
}
}
==我去给你写。等下贴给你。
/
传入一个月份,得到这个月份所有的周三,周四将其打印出来。
@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);
}
这个方法是单独定义的,所以你可以随意调用,并且得到任意一个月份的周三或者周四。只需要在调用的时候指定您要查看的月份即可。
如果有疑问欢迎交流。呵呵
以上就是关于Java中获取本周内所有日期全部的内容,包括:Java中获取本周内所有日期、java calendar 获取日期数据的特定部分、如何得到一年的所有星期二的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)