打印日历 [英] Printing a calendar
本文介绍了打印日历的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道如何创建普通的日历,就像这样.
I know how to create normal calendar which would be something like this.
代码:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalendarDateExample {
public static void main(String[] args) {
// Create an instance of a GregorianCalendar
Calendar calendar = new GregorianCalendar(2014, 1, 06);
System.out.println("Year: " + calendar.get(Calendar.YEAR));
System.out.println("Month: " + (calendar.get(Calendar.MONTH) + 1));
System.out.println("Day: " + calendar.get(Calendar.DAY_OF_MONTH));
// Format the output.
SimpleDateFormat date_format = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(date_format.format(calendar.getTime()));
}
}
输出:年:2014月:2一天:62014-02-06
Output : Year: 2014 Month: 2 Day: 6 2014-02-06
但是如何显示给定月份和年份的日历,使其看起来像这样:
But how would display a calender for given month and year making it look like:
July 2005
S M T W Th F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
我是java的新手,想知道上面的方法.任何帮助将是巨大的!预先感谢
I am new to java , would like know how to do it the way above. any help would be great! thanks in advance
推荐答案
您可以执行以下操作:
Calendar calendar = new GregorianCalendar(2014, 1, 06);
calendar.set(Calendar.DAY_OF_MONTH, 1); //Set the day of month to 1
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); //get day of week for 1st of month
int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
//print month name and year
System.out.println(new SimpleDateFormat("MMMM YYYY").format(calendar.getTime()));
System.out.println(" S M T W T F S");
//print initial spaces
String initialSpace = "";
for (int i = 0; i < dayOfWeek - 1; i++) {
initialSpace += " ";
}
System.out.print(initialSpace);
//print the days of the month starting from 1
for (int i = 0, dayOfMonth = 1; dayOfMonth <= daysInMonth; i++) {
for (int j = ((i == 0) ? dayOfWeek - 1 : 0); j < 7 && (dayOfMonth <= daysInMonth); j++) {
System.out.printf("%2d ", dayOfMonth);
dayOfMonth++;
}
System.out.println();
}
输出:
February 2014
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
这篇关于打印日历的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文