首页 > 代码库 > 日历2

日历2

 1 package Format_daqo; 2  3 import java.text.SimpleDateFormat; 4 import java.util.Calendar; 5 import java.util.Date; 6 import java.util.Scanner; 7  8 /** 9  *     1、第一行的7个格子里放星期几10     2、第二行的7个格子里分别放啥?11     根据输入的日期判断:12     如果对应月份的第1天是星期一,则第二行的每个格子里打印对应的天数13     如果对应月份的第1天是星期二,则第二行的第1个格子里放空格,其他格子里放天数14     如果对应月份的第1天是星期三,则第二行的第1~2个格子里放空格,其他格子里放天数15     如果对应月份的第1天是星期四,则第二行的第1~3个格子里放空格,其他格子里放天数16     如果对应月份的第1天是星期五,则第二行的第1~4个格子里放空格,其他格子里放天数17     如果对应月份的第1天是星期六,则第二行的第1~5个格子里放空格,其他格子里放天数18     如果对应月份的第1天是星期天,则第二行的第1~6个格子里放空格,其他格子里放天数19 3、假设对应的月份总共有30天,则一共需要放30个数字,每行放满后,从新的一行开始放20  * @author frank21  *22  */23 public class Calendar_Frank2 {24     static int count;//用来统计放了多少次空格或数字25     static void printSpace(int c){26         for(int i=0;i<c;i++){27             System.out.print(" "+"\t");28             count++;29         }30     }31     32     public static void main(String[] args) throws Exception {33         System.out.println("请输入日期(格式为yyyy-MM-dd):");34         Scanner scan = new Scanner(System.in);35         String str = scan.next();36         //37         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");38         Date date = sdf.parse(str);39         //40         Calendar cal = Calendar.getInstance();41         //将cal表示的时间修改成date所表示的时间42         cal.setTime(date);43         44         System.out.println("星期一"+"\t"+"星期二"+"\t"+"星期三"+"\t"+"星期四"+"\t"+"星期五"+"\t"+"星期六"+"\t"+"星期日");45         46         int day = cal.get(Calendar.DAY_OF_MONTH);  //获取cal所表示的天,即输入的那一天(比如2015-12-22,就是22)47         48         cal.set(Calendar.DAY_OF_MONTH, 1);//49         50         int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获取这个月有多少天    3051         52         //该月的第一天是周几53         switch(cal.get(Calendar.DAY_OF_WEEK)){54         case 1://代表国外的周日 55             printSpace(6);56             break;57         case 2://代表国外的周一 58             break;59         case 3://代表国外的周二 60             printSpace(1);61             break;62         case 4://代表国外的周三 63             printSpace(2);64             break;65         case 5://代表国外的周四 66             printSpace(3);67             break;    68         case 6://代表国外的周五 69             printSpace(4);70             break;    71         case 7://代表国外的周六 72             printSpace(5);73         }74         for(int i=1;i<=days;i++){75             if(i==day){76                 System.out.print(i+"*\t");77             }else{78                 System.out.print(i+"\t");79             }80             count++;81             if(count%7==0){82                 System.out.print("\n");83             }84         }85         scan.close();86     }87 }

 

日历2