zoukankan      html  css  js  c++  java
  • Java打印日历

     1 import java.text.ParseException;
     2 import java.text.SimpleDateFormat;
     3 import java.util.Calendar;
     4 import java.util.Date;
     5 import java.util.GregorianCalendar;
     6 import java.util.Scanner;
     7 
     8 
     9 public class PrinTime {
    10 
    11     /**
    12      * @param args
    13      */
    14     public static void main(String[] args) {
    15         Scanner input = new Scanner(System.in);
    16         
    17         String dateString = "";        //日期字符串
    18         System.out.print("请输入年份:");
    19         dateString += input.next();
    20         System.out.print("请输入月份:");
    21         dateString += "-" + input.next();
    22         
    23         //创建日期格式对象,以便获得Date类型的日期,构造函数参数是自定义格式,年-月
    24         SimpleDateFormat dateFormat = new SimpleDateFormat("yy-MM");
    25         Date datitime = null;
    26         try {
    27             datitime = dateFormat.parse(dateString);//根据SimpleDateFormat对象的parse方法获得Date类型的日期,方法参数是日期字符串
    28         } catch (ParseException e) {
    29             // TODO Auto-generated catch block
    30             e.printStackTrace();
    31         }
    32         //创建日历对象
    33         Calendar calendar = new GregorianCalendar();
    34         //设置此日历对象的日期
    35         calendar.setTime(datitime);
    36         //创建数组保存日期,一个日期最多6行7列
    37         int dateTimes[] = new int[6*7];
    38         
    39         //给日期数组赋值,根据GregorianCalendar对象的getActualMaximum方法获得该月的最大天数,该方法的参数是GregorianCalendar对象的日期
    40         //getActualMaximum自动判断最大日期
    41         for (int i = 1; i <= calendar.getActualMaximum(calendar.DATE); i++) {
    42             /*
    43              * 从该日历1号在一周中的天数后开始赋值
    44              * Calendar对象的get方法获得的日期在一周中的天数会比我们的多一天,应是外国喜欢每周周日是第一天
    45              * 数组索引从0开始,所以要-1再-1
    46              * */
    47             dateTimes[i+calendar.get(calendar.DAY_OF_WEEK)-1-1] = i;
    48         }
    49         //打印输出
    50         System.out.println("日	一	二	三	四	五	六");
    51         for (int i = 0; i < dateTimes.length; i++) {
    52             //从该日历1号在一周中的天数后开始打印
    53             if (dateTimes[i] != 0) {
    54                 System.out.print(dateTimes[i]);
    55             }
    56             System.out.print("	");
    57             //每打印一周的日期就换行
    58             if ((i+1) %7 == 0) {
    59                 System.out.println("");
    60             }
    61         }
    62     }
    63 
    64 }
    欢迎提出意见或建议!!!
  • 相关阅读:
    邮件系列3 --- 安全传输
    配置postfix支持虚拟域和虚拟用户
    Postfix+Sasl+Courier-authlib+Dovecot+MySQL+extmail 邮件系统部署
    在switch中的case语句中声明变量编译出错的解决方案
    关于自控力
    PUTTY使用Ctrl+s僵死的问题
    sqlite3里类似top的用法
    二维数组、行指针、指针数组、二级指针
    sqlite3_exec函数的使用
    基于s5pv210嵌入式linux使用其他动态、静态库文件程序的交叉编译
  • 原文地址:https://www.cnblogs.com/gaofei-1/p/6543737.html
Copyright © 2011-2022 走看看