您的位置:首页 > 其它

控制台打印当前月日历

2017-06-22 15:22 267 查看
控制台打印当前月日历,格式为:



当前日期用一个*号标记。

这个程序需要解决如何计算某月份的天数及一个给定日期相应是星期几。

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateTime {
public static void main(String[] args){
Calendar cld= Calendar.getInstance();
int Day=cld.get(Calendar.DATE);//今天是几号
int FirstDay=getFirstDayInWeek();//调用获取本月第一天是本周第几天函数
int day = getCurrentMonthLastDay();//调用获取当月天数函数
printCalendar(FirstDay,day,Day);//调用打日历方法

}
//获取当月天数的方法
public static int getCurrentMonthLastDay()
{
Calendar cld = Calendar.getInstance();
cld.set(Calendar.DATE, 1);//将今天设为1号
cld.roll(Calendar.DATE, -1);//回滚到本月最后一天
int maxDate = cld.get(Calendar.DATE);
return maxDate;
}
//获取本月第一天是周几
public static int getFirstDayInWeek()
{
Calendar cld = Calendar.getInstance();
cld.set(Calendar.DATE, 1);//将今天设为1号
int firstDay = cld.get(Calendar.DAY_OF_WEEK);
return firstDay;
}
//打印日历
public static void printCalendar(int FirstDay,int day,int Day)
{
Date now=new Date();
System.out.println(now);
SimpleDateFormat DateTime = new SimpleDateFormat("今天是 yyyy年MM月dd日 ");
System.out.println(DateTime.format(now));
String[] Week={"周日","周一","周二","周三","周四","周五","周六"};
for(int i=0;i<Week.length;i++){
System.out.print(String.format("%17s",Week[i]));
}
System.out.println();
int j=0;//换行计数器
while(j<FirstDay-1){
System.out.print("\t");
j++;
}
for(int i = 1 ; i <= day; i++)
{
if(j%7==0){
System.out.println();
}
j++;
if(i!=Day && i!=Day+1 ){
System.out.print(String.format("%8d",i));
}
if(i==Day){
System.out.print(String.format("%8d*",i));
}
if(i==Day+1){
System.out.print(String.format("%7d",i));
}
}
}
}


输出结果



可参考 Java-对系统时间进行的操作 一文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: