服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 非常实用的java万年历制作方法

非常实用的java万年历制作方法

2021-04-06 11:23lx__angel Java教程

这篇文章主要为大家详细介绍了非常实用的java万年历制作方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

完成万年历的制作需要用到数组、循环等知识。

编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,)

编程计算输入月份的第一天是星期几,(公式:星期几=1+天数差%7)。

java" id="highlighter_724439">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import java.util.Scanner;
public class Calendar{
   
  public static void main(String[] args){
     
    int year;
    int month;
    int totaldays=0;
     
    Scanner sc=new Scanner(System.in);
     
    System.out.println("请输入年");
    year=sc.nextInt();
    System.out.println("请输入月");
    month=sc.nextInt();
     
     
    //计算年的总天数
    for(int i=1900;i<year;i++){
      if((i%400==0)||(i%4==0&&i%100!=0)){
        totaldays+=366;
      }else{
        totaldays+=365;
      }
    }
     
    //距离1900年1月1好的总天数
    totaldays+=monthdays(month,year);
    //System.out.println(totaldays);
    System.out.println("-------------"+year+"年"+month+"月日历为---------------");
    //开头
    System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六\t");
     
    //该月第一天是星期几,星期几前面就空几格
    int x=1+totaldays%7;
     
    if(x==7){
      x=0;
    }
    for(int i=0;i<x;i++){
      System.out.print(" \t");
    }
     
    int days=monthday(month,year);
     
    int i=1;
    while(i<=days){
      System.out.print(i+"   \t");
      if((i+x)%7==0){
        System.out.println();
      }
      i++;
    }
     
  }
  //月份总天数
  public static int monthdays(int month,int year){
    int totaldays=0;
    for(int i=1;i<month;i++){
      totaldays+=monthday(i,year);
    }
    return totaldays;
  }
   
  //某月天数
  public static int monthday(int month,int year){
 
    if((year%400==0)||(year%4==0&&year%100!=0)){
      int[] arr={0,31,29,31,30,31,30,31,31,30,31,30,31};
      return arr[month]; 
    }else{
      int[] arr={0,31,28,31,30,31,30,31,31,30,31,30,31};
      return arr[month];
    }
   
  }
   
}

非常实用的java万年历制作方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/lx__angel/article/details/78824806

延伸 · 阅读

精彩推荐