zoukankan      html  css  js  c++  java
  • 万年表

     1 public class Demo {
     2     public static void main(String[] args) {
     3         int totalDay=0; //计算总天数
     4         int dayOfWeek; //保存当月第一天是星期几
     5         //int day=0 ; //当月的天数
     6         int dayOfYear=0; //保存用户输入的年月之前的天数
     7         int sum = 0;
     8         Scanner sc = new Scanner(System.in);
     9         System.out.println("******************欢 迎 使 用 万 年 表******************");
    10         System.out.println("请选择年份:");
    11         int year = sc.nextInt();
    12         System.out.println("请选择月份:");
    13         int month = sc.nextInt();
    14         //计算用户当年1-1后总天数
    15         for(int i = 1900; i <year; i++){
    16             if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0){
    17                 dayOfYear += 366;
    18             }
    19             else {
    20                 dayOfYear += 365;
    21             }
    22         }
    23         int[] day = {31,28,31,30,31,30,31,31,30,31,30,31}; //当年的月
    24         if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
    25             day[1] = 29;
    26         }
    27         for (int i = 0; i < month-1; i++){
    28             sum += day[i];
    29         }
    30         dayOfWeek = ((dayOfYear + sum) + 1) % 7;//核心:算法 求该月的1号是星期几 (当用户输入的年份1-1 以前的所有天数+该月的天数 +1) %7
    31         //打印格式
    32         System.out.println("天	一	二	三	四	五	六");
    33         //初始化日历的第一天的位置
    34         for (int i = 0; i < dayOfWeek; i++){
    35             System.out.print("	");
    36         }
    37 
    38         for(int i = 1; i <=  day[month-1]; i++){
    39             //控制每到星期6就换行,原理为总天数加上当月天数对7取余
    40             if (((dayOfYear + sum)+i) % 7 ==6 ){
    41                 System.out.print(i+"
    ");
    42             }
    43             else {
    44                 System.out.print(i+"	");
    45             }
    46         }
    47     }
    48 }
  • 相关阅读:
    jsonp跨域请求
    jQuery之异步Ajax请求使用
    table表格cellspacing与cellpadding属性
    常用正则匹配
    插入数据显示 Duplicate entry '4913' for key 'user_id'
    事件驱动模型 IO多路复用 阻塞IO与非阻塞IO select epool
    python 协程
    python 进程 线程
    python 并发socketserver模块
    python 网络 socket
  • 原文地址:https://www.cnblogs.com/bingquan1/p/12665429.html
Copyright © 2011-2022 走看看