非常實(shí)用的java萬年歷制作方法
完成萬年歷的制作需要用到數(shù)組、循環(huán)等知識(shí)。
編程計(jì)算輸入的月份距離1900年1月1日的天數(shù),求出當(dāng)前月之前的總天數(shù)(不包含當(dāng)前輸入月分的天數(shù),)
編程計(jì)算輸入月份的第一天是星期幾,(公式:星期幾=1+天數(shù)差%7)。
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("請(qǐng)輸入年");
year=sc.nextInt();
System.out.println("請(qǐng)輸入月");
month=sc.nextInt();
//計(jì)算年的總天數(shù)
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好的總天數(shù)
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++;
}
}
//月份總天數(shù)
public static int monthdays(int month,int year){
int totaldays=0;
for(int i=1;i<month;i++){
totaldays+=monthday(i,year);
}
return totaldays;
}
//某月天數(shù)
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];
}
}
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot3.0自定stater模塊的操作流程(chatGPT提供的49種場景)
SpringBoot3.0發(fā)布等重磅陸消息續(xù)進(jìn)入大家的視線,而本文作者將以技術(shù)整合的角度,帶大家把最火的兩個(gè)技術(shù)整合在一起,通過本文學(xué)習(xí)你將熟悉SpringBoot3.0自定stater模塊的操作流程,并熟悉OpenAi為chatGPT提供的49種場景,感興趣的朋友一起看看吧2022-12-12
idea進(jìn)程結(jié)束但是項(xiàng)目頁面正常運(yùn)行怎么辦
這篇文章主要介紹了idea進(jìn)程結(jié)束但是項(xiàng)目頁面正常運(yùn)行怎么辦,很多朋友遇到這樣的情況不知道該如何解決了,下面小編給大家?guī)砹薸dea進(jìn)程結(jié)束但是項(xiàng)目頁面正常運(yùn)行的解決方法,需要的朋友可以參考下2023-03-03
java 與testng利用XML做數(shù)據(jù)源的數(shù)據(jù)驅(qū)動(dòng)示例詳解
這篇文章主要介紹了java 與testng利用XML做數(shù)據(jù)源的數(shù)據(jù)驅(qū)動(dòng)示例詳解的相關(guān)資料,需要的朋友可以參考下2017-01-01
Spring Boot中使用activiti的方法教程(一)
最近一直研究springboot,下面這篇文章主要給大家介紹了關(guān)于Spring Boot中使用activiti的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
struts2.5+框架使用通配符與動(dòng)態(tài)方法常見問題小結(jié)
這篇文章主要介紹了struts2.5+框架使用通配符與動(dòng)態(tài)方法常見問題 ,在文中給大家提到了Struts2.5框架使用通配符指定方法 ,需要的朋友可以參考下2018-09-09
Spring基于常用AspectJ切點(diǎn)表達(dá)式使用介紹
AspectJ是一個(gè)基于Java語言的AOP框架,使用AspectJ需要導(dǎo)入Spring?AOP和AspectJ相關(guān)jar包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
SpringBoot+SpringSecurity實(shí)現(xiàn)認(rèn)證的流程詳解
這篇文章主要介紹了SpringBoot+SpringSecurity實(shí)現(xiàn)認(rèn)證的流程,文中通過代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05

