zoukankan      html  css  js  c++  java
  • 简单的日历制作

     1 import java.util.*;
     2 import java.text.*;
     3 class Demo 
     4 {
     5     public static void main(String[] args) 
     6     {
     7         long weekday = 0;
     8         int c = 0;
     9         Scanner scan = new Scanner(System.in);
    10         String str = "1900-1-1";//1900-1-1是星期一
    11         System.out.println("请输入年月(年-月):");
    12         String str1 = scan.next();
    13         String str2 = str1 + "-1";//为了和1900-1-1到输入的时间计算出差多少天而加上字符"-1"
    14         String str3 = null;
    15         long yearDays = charge(str,str2);//计算出1900-1-1到输入的时间相差的天数
    16         weekday = yearDays%7+1;//计算出一号一星期几
    17         System.out.println(weekday);
    18         String str4 = str1.substring(5);//截取字符,截取到后面的月份
    19         int num = 0;
    20         num=Integer.valueOf(str4); 
    21         String str5 = str1.substring(0,4);
    22         
    23         int num1 = 0;
    24         num1 = Integer.valueOf(str5);//把截取到的字符月份转换为整形
    25         switch (num)
    26         {
    27         case 1:
    28         case 3:
    29         case 5:
    30         case 7:
    31         case 8:
    32         case 10:
    33         case 12:
    34             c = 31;
    35             break;
    36         case 4:
    37         case 6:
    38         case 9:
    39         case 11:
    40             c = 30;
    41             break;
    42         case 2:
    43             {
    44                 //判断是否为闰年
    45                 if ((num1%4 == 0 && num1%100 != 0) || num1 % 400 ==0)
    46                 {
    47                     c = 29;
    48                 }else {
    49                     c = 28;
    50                 }
    51             }
    52             break;
    53         }
    54         System.out.println("星期日	"+"星期一	"+"星期二	"+"星期三	"+"星期四	"+"星期五	"+"星期六	");
    55           if(weekday%7!=0){//判断星期天是不是一号,是就不打印*号
    56              for (int i = 1; i <= weekday ; i++)//打印*号
    57             {
    58 
    59                 System.out.print("  *"+"	");
    60             
    61             }
    62         }
    63         int day=0;
    64         for (int i = (int)weekday  ; i < c+ (int)weekday ; i++ )//打印每天的号数
    65         {
    66             day++;//每天号数记录
    67             if ((i) % 7 == 0)
    68             {
    69                 System.out.println();
    70             }
    71             System.out.print("  "+day+"	");
    72         }
    73     }
    74 
    75     public static long charge(String date1,String date2){
    76         
    77         //做时间差
    78         //将String转为Date做计算
    79         SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
    80         long charge = 0;
    81         try{
    82             Date d1 = sd.parse(date1);  
    83             Date d2 = sd.parse(date2);
    84             //时间也是以毫秒为单位。
    85             charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
    86         }catch(ParseException e){
    87             System.out.println(e);
    88         }
    89         return charge;
    90     }
    91 }
  • 相关阅读:
    基于Python实现的死链接自动化检测工具
    MySQL 慢查询日志配置与简析
    Git 常用命令及操作总结
    redis redis常用命令及内存分析总结(附RedisClient工具简介
    Jenkins Jenkins结合GIT Maven持续集成环境配置
    JAVA TestNG单元测试详解
    MyEclipse TestNG插件安装与配置
    JAVA 利用MyEclipse结合TestNG测试框架进行单元测试
    lintcode :前序遍历和中序遍历树构造二叉树
    lintcode: 中序遍历和后序遍历树构造二叉树
  • 原文地址:https://www.cnblogs.com/lanyinhao/p/6136361.html
Copyright © 2011-2022 走看看