java 中关于日历的一些方法
2016-06-12 16:12
459 查看
获取当月的所有天http://www.cnblogs.com/maowang1991/archive/2012/12/29/2838919.html
private List<String> getDays() { List<String> list = new ArrayList<>(); GregorianCalendar now = new GregorianCalendar(); int month = now.get(Calendar.MONTH); int today = now.get(Calendar.DAY_OF_MONTH); Log.d("Debug","当月:"+month+",当天:"+today); int intent = 0; now.set(Calendar.DAY_OF_MONTH, 1); int week = now.get(Calendar.DAY_OF_WEEK); int firstDayOfWeek = now.getFirstDayOfWeek(); while (firstDayOfWeek != week) { ++intent; now.add(Calendar.DAY_OF_MONTH, -1); week = now.get(Calendar.DAY_OF_WEEK); } String[] weekdayNames = new DateFormatSymbols().getShortWeekdays(); do { System.out.printf("%4s", weekdayNames[week]); now.add(Calendar.DAY_OF_MONTH, 1); week = now.get(Calendar.DAY_OF_WEEK); } while (week != firstDayOfWeek); System.out.println(); Log.d("debug","这个月改缺少:"+intent+"天"); for (int i = 0; i < intent; ++i) { System.out.print(" "); } now.set(Calendar.DAY_OF_MONTH, 1); week = now.get(Calendar.DAY_OF_WEEK); int day = now.get(Calendar.DAY_OF_MONTH); do { System.out.printf("%3s", day); list.add(day + ""); if (today == day) { System.out.print("*"); } else { System.out.print(" "); } now.add(Calendar.DAY_OF_MONTH, 1); week = now.get(Calendar.DAY_OF_WEEK); day = now.get(Calendar.DAY_OF_MONTH); if (week == firstDayOfWeek) { System.out.println(); } } while (month == now.get(Calendar.MONTH)); if (week != firstDayOfWeek) { System.out.println(); } return list; }
根据年月日获取指定月份的所有天
private void sss(){ String date = "2016-06-12"; int[] daysInMonth = getMonthDays(date,0); Log.d("Debug","日期的长度:"+daysInMonth.length); for(int value: daysInMonth){ Log.d("Debug",value + " "); } } private static int[] getMonthDays(String date,int deleOrAdd) { Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.YEAR, Integer.parseInt(date.substring(0, 4))); calendar.set(Calendar.MONTH, Integer.parseInt(date.substring(5, 7)) -1+deleOrAdd); int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); int[] days = new int[maxDay]; for(int i = 1; i <= maxDay; i++){ days[i-1] = i; } return days; }
相关文章推荐
- java基础概念经典题目汇集
- JAVA包命名规范
- 基于Java的简易表达式解析工具(二)
- spring学习的点点滴滴——PropertyPlaceholderConfigurer,PropertiesFactoryBean
- Java多线程 之 访问共享资源synchronized、lock(七)
- MyEclipse 查寻接口实现类的方法[转+总结]
- JAVA对象通过jackson转成json格式,属性名首字母变成小写的解决方法
- Struts2中的if标签
- Map.Entry 遍历之泛型
- java transient修饰符
- JAVA解析XML的四种方式
- 在root过的手机中运行java程序
- Java集合类
- 《JAVA与模式》之责任链模式
- Java关键字final、static使用总结
- java找不到或无法加载主类
- 【转】Java日期计算之Joda-Time
- Java源码之LinkedHashSet
- 使用Jacob自动替换书签内容
- Java基础--泛型