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 }
    欢迎提出意见或建议!!!
  • 相关阅读:
    为什么选择webpack
    webpack-模块(module)
    AHK 命令行
    icon 多 索引 图标
    win10 鼠标右键 某类文件 资源管理器 卡死
    管道 命令 %errorlevel! 环境变量 优先级 问题 随笔 CMD /V 延迟的环境变量
    SolidWorks 管道 routing
    SolidWorks 工程图 表格 杂
    windows shell 笔记 3
    windows shell 笔记 2
  • 原文地址:https://www.cnblogs.com/gaofei-1/p/6543737.html
Copyright © 2011-2022 走看看