public static void getWeeksOfMonth(int month, int year)
{
SimpleDateFormat sdf = new SimpleDateFormat("EEEE dd-MMM-yyyy");
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month);
cal.set(Calendar.DAY_OF_MONTH, 1);
int ndays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
System.out.println(ndays+"<<<ff" );
for (int i = 1; i <= ndays; i++)
{
String day = sdf.format(cal.getTime());
System.out.println(day+"<<<" );
Log.e("quest", day+"<<<");
if(i % 7 == 0){
Log.e("question", "=======week days===========");
}
cal.add(Calendar.DATE, 1);
}
}输出
2017年11月4日星期六
2017年11月5日星期日
2017年11月6日星期一
2017年11月7日星期二
=======week days===========
2017年11月8日星期三
2017年11月9日星期四
2017年11月10日星期五
2017年11月11日星期六
2017年11月12日星期日
2017年11月13日星期一
2017年11月14日星期二
=======week days==========
2017年11月15日星期三
2017年11月16日星期四
2017年11月17日星期五
2017年11月18日星期六
2017年11月19日星期日
2017年11月20日星期一
2017年11月21日星期二
=======week days===========
2017年11月22日星期三
2017年11月23日星期四
2017年11月24日星期五
2017年11月25日星期六
2017年11月26日星期日
2017年11月27日星期一
2017年11月28日星期二
=======week days===========
2017年11月29日星期三
2017年11月30日星期四
1:-但是我想要完成上周到周二的
2:-从周五开始到周四结束
发布于 2018-07-22 21:08:28
使用java.time
您正在使用可怕的旧类,现在已被java.time类所取代。
YearMonth类表示整个月。
YearMonth ym = YearMonth.of( 2018 , Month.JANUARY ) ;定义输出字符串的格式。
Locale locale = Locale.US ;
DateTimeFormatter f = DateTimeFormatter.ofPattern(
"EEEE dd-MMM-uuuu" ,
locale
) ;我建议让java.time 自动本地化为您而不是硬编码一种格式。若要本地化,请指定:
FormatStyle来确定字符串的长度或缩写。Locale用于确定:
定义格式化程序:
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate(
FormatStyle.LONG ,
Locale.CANADA_FRENCH
) ;可能收集成一个List。
int initialCapacity = ym.lengthOfMonth() ;
List< String > outputs = new ArrayList<>( initialCapacity ) ;在白天循环。
for( int i = 1 , i <= ym.lengthOfMonth() ; i ++ ) {
LocalDate ld = ym.atDay( i ) ;
String output = ld.format( f ) ;
outputs.add( output ) ;
}若要将它们按星期数分组,请使用DayOfWeek枚举。
DayOfWeek dow = ld.getDayOfWeek() ;
if ( dow.equals( DayOfWeek.WEDNESDAY ) ) { … }关于java.time
http://docs.oracle.com/javase/10/docs/api/java/time/package-summary.html框架内置到Java8和更高版本中。这些类取代了麻烦的旧遗赠日期时间类,如java.util.Date、Calendar和SimpleDateFormat。
http://www.joda.org/joda-time/项目现在在维护模式中,建议迁移到java.time类。
要了解更多信息,请参见http://docs.oracle.com/javase/tutorial/datetime/TOC.html。并搜索堆栈溢出以获得许多示例和解释。规范是JSR 310。
您可以直接与数据库交换java.time对象。使用与JDBC 4.2或更高版本兼容的JDBC 4.2。不需要字符串,也不需要java.sql.*类。
在哪里获得java.time类?
https://stackoverflow.com/questions/47553493
复制相似问题