/** * * 根据年、月获取当前月日历 * */
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar;
public class CalendarTools {
public static void drawCalendar(Date date) {
Calendar cal = Calendar.getInstance(); cal.setTime(date); int year = cal.get(Calendar.YEAR); int month2 = cal.get(Calendar.MONTH) + 1; // Calendar里取出来的month比实际的月份少1, // 所以要加上
// 期望的日历对象 GregorianCalendar d = new GregorianCalendar(year, month2, 0);
// 当前的日历对象 GregorianCalendar gc = new GregorianCalendar();
int today = gc.get(java.util.Calendar.DAY_OF_MONTH);// 得到当前的日期 int monthToday = gc.get(java.util.Calendar.MONTH) + 1;// 得到当前的月份 int month = d.get(java.util.Calendar.MONTH) + 1;// 得到期望日期的月份
// 给期望日期设置一个月的第一天 d.set(java.util.Calendar.DAY_OF_MONTH, 1); // 获得期望月份的第一天是一周中的第几天 int weekday = d.get(java.util.Calendar.DAY_OF_WEEK);
// 打印日历头 System.out.println("Mon\tTue\tWed\tFou\tFri\tSat\tSun");
// 制作日历第一行的缩进 for (int i = java.util.Calendar.SUNDAY; i < weekday; i++) { System.out.print("\t"); } do { // 打印日子 int day = d.get(java.util.Calendar.DAY_OF_MONTH); System.out.printf("%3d", day); // 用*号标记当天日期 if (day == today && month == monthToday) { System.out.print("*\t"); } else { System.out.print("\t"); } // 每当周六另起一行 if (weekday == java.util.Calendar.SATURDAY) { System.out.println(); } // 增加一天得到第二天 d.add(java.util.Calendar.DAY_OF_MONTH, 1);
// 重新获得改天在一周中的位置 weekday = d.get(java.util.Calendar.DAY_OF_WEEK); } while (d.get(java.util.Calendar.MONTH) + 1 == month); }
public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar c = Calendar.getInstance(); try { c.setTime(sdf.parse("2012-7-1")); drawCalendar(c.getTime()); } catch (ParseException e) { e.printStackTrace(); } } }
java 取日期中的月份 java获取当前日期的月份
转载文章标签 java 取日期中的月份 java获取当前年月日历 java System i++ 文章分类 Java 后端开发
-
Java获取指定日期或当前日期的上个月份或其他月份的日期 - Java
对于传入的日期或者当前日期, 想要获得 上个月或者下下个月的日期, 可
java 指定日期 上个月 当前日期