• 万年表


      1 import java.util.Scanner;
      2 
      3 public class Calenda {
      4 public static void main(String[] args) {
      5     System.out.println("************请输入万年历************");
      6     
      7     Scanner sc=new Scanner(System.in);//键盘获取
      8     //用户输入
      9     System.out.println("请输入年份: ");
     10     int year=sc.nextInt();
     11     System.out.println("请输入月份:");
     12     int month=sc.nextInt();
     13     
     14     int i;//自1900年起的所有年份
     15     int tian=31;//判断是否为大月份
     16     int days=0;//1900.1.1作为起点
     17     
     18     for(i=1900;i<year;i++)
     19     {
     20         if((i%4==0 && i%100!=0) || (i%400==0)) //能被4整除且不能被100整除的年份为闰年
     21         {
     22             days+=days+366;
     23         }
     24         else
     25         {
     26             days+=days+365;
     27         }
     28     }
     29     int day=0;//天数变量
     30     //计算输入月份与1月1日之间的天数
     31     for(int a=1;a<=month;a++)
     32     {
     33         switch(a)
     34         {
     35         case 1:
     36         case 3:
     37         case 5:
     38         case 7:
     39         case 8:
     40         case 10:
     41         case 12:
     42             tian=31;
     43             if(a<month)
     44             {
     45                 day=day+tian;//
     46             }
     47             break;
     48         case 4:
     49         case 6:
     50         case 9:
     51         case 11:
     52             tian=30;
     53             if(a<month)
     54             {
     55                 day=day+tian;
     56             }
     57             break;
     58         case 2:
     59             //平均与闰年的2月份天数分别是28天和29天
     60             if((i%4==0 && i%100!=0) || (i%400==0))
     61             {
     62                 tian=29;
     63                 if(a<month)
     64                 {
     65                     day=day+tian;
     66                 }
     67                 else
     68                 {
     69                     tian=28;
     70                     if(a<month)
     71                     {
     72                         day=day+tian;
     73                     }
     74                 }
     75                 break;
     76             }
     77         }
     78         days=days+day;//总天数
     79         //判断输入年月的第一天是星期几(一直1900年一月一日星期一)
     80         int firstDayofMonth=0;
     81         firstDayofMonth=1+days%7;
     82         if(firstDayofMonth%7==0)
     83         {
     84             firstDayofMonth=0;//星期天
     85         }
     86         
     87         System.out.println("星期天	星期一	星期二	星期三	星期四	星期五	星期六	");
     88         for(int n=0;n<firstDayofMonth;n++)//打印空格
     89         {
     90             System.out.print("	");
     91         }
     92         //打印天数
     93         for(int v=1;v<=tian;v++)
     94         {
     95             System.out.print(v+"	");//空格+日期=7则换行
     96             if((firstDayofMonth+v)%7==0)
     97             {
     98                 System.out.println();
     99             }
    100         }
    101     }
    102 }
    103 }

    打印出1~12月份的日历表,剩余部分省略

  • 相关阅读:
    Python----定义
    [转载]Morris Traversal方法遍历二叉树(非递归,不用栈,O(1)空间)
    彻底明白IP地址——计算相关地址
    [转载] 教你如何迅速秒杀掉:99%的海量数据处理面试题
    [转载]从B 树、B+ 树、B* 树谈到R 树
    [转载]Java抽象类和接口的学习
    [转载]字符串匹配的Boyer-Moore算法
    [转载]字符串匹配的KMP算法
    [转载]孤儿进程与僵尸进程[总结]
    [转载]Huffman编码压缩算法
  • 原文地址:https://www.cnblogs.com/zjm1999/p/10115926.html
Copyright © 2020-2023  润新知