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 }
    欢迎提出意见或建议!!!
  • 相关阅读:
    HDU4513 吉哥系列故事——完美队形II Manacher算法
    POJ3974 Palindrome Manacher算法
    POJ1674 Sorting by Swapping 置换群
    100个著名初等数学问题[转载]
    POJ1026 Cipher 置换群
    FOJ1977 Pandora adventure 插头DP
    HDU1964 Pipes 插头DP
    POJ1286 Necklace of Beads polya计数
    Manacher算法O(n)回文子串算法[转载]
    POJ3270 Cow Sorting 置换群
  • 原文地址:https://www.cnblogs.com/gaofei-1/p/6543737.html
Copyright © 2011-2022 走看看