📄 calendarinfo.java
字号:
/*此类是日历功能的实现*/
package pro;
import java.util.Calendar;
public class CalendarInfo
{
/*声明所需组件*/
private static Calendar calNow;
private int mYear;
private int mMonth;
private int mDaysOfMonth;
private int mFirstWeek;
static
{
calNow = Calendar.getInstance();//获得系统当前日期
}
public static int getNowYear()//获得年
{
return (calNow.get(Calendar.YEAR));
}
public static int getNowMonth()//获得月
{
return (calNow.get(Calendar.MONTH) + 1);
}
public CalendarInfo()//返回当前的年,月,日
{
mYear = getNowYear();
mMonth = getNowMonth();
mDaysOfMonth = getDaysOfMonth(mYear, mMonth);
mFirstWeek = getFirstOfWeek(mYear, mMonth);
}
public CalendarInfo(int year, int month) throws Exception
{
mYear = year;
if (month < 1 || month > 12)
{
throw (new Exception());
}
mMonth = month;
mDaysOfMonth = getDaysOfMonth(mYear, mMonth);
mFirstWeek = getFirstOfWeek(mYear, mMonth);
}
private int isLeapYear(int year)//判断是否是闰年
{
return (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 1 : 0);
}
private int getDaysOfMonth(int year, int month)
{
int[][] days = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
return (days[isLeapYear(year)][month]);
}
private int getFirstOfWeek(int year, int month)//获得月第一日的星期
{
Calendar cal = Calendar.getInstance();
cal.set(year, month - 1, 1);
return (cal.get(Calendar.DAY_OF_WEEK) - 1);
}
public String toString()//覆盖toString 方法控制打印格式
{
String str = "\t\t\t" + mYear + "年" + mMonth + "月\n";
str += "日\t一\t二\t三\t四\t五\t六\n";
int i;
for (i = 1; i <= mFirstWeek; i++)
{
str += " \t";
}
for (int j = 1; j <= mDaysOfMonth; j++, i++)
{
str += (j + "\t");
if (i % 7 == 0)
{
StringBuffer sb = new StringBuffer(str);
sb.setCharAt(sb.length() - 1, '\n');
str = sb.toString();
}
}
return (str);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -