真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

輸出萬年歷Java代碼 萬年歷java程序代碼

java中,一段萬年歷代碼,跑起來總是差4天,修改之后也只能讓一部分月份的顯示正確,代碼如下

我改造了一下你的代碼 :

創(chuàng)新互聯(lián)主營渠縣網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP軟件開發(fā),渠縣h5小程序設(shè)計搭建,渠縣網(wǎng)站營銷推廣歡迎渠縣等地區(qū)企業(yè)咨詢

package?com.mikuma.calendar;

import?java.util.GregorianCalendar;

import?java.util.Scanner;

public?class?Calendar{

public?static?void?main(String[]?args){

int?year?=?0;

int?month?=?0;

Scanner?scanner?=?new?Scanner(System.in);

System.out.println("請輸入您要查詢的年份");

year?=?scanner.nextInt();

System.out.println("請輸入您要查詢的月份");

while?(true){

month?=?scanner.nextInt();

if?(month??0?||?month??12){

System.out.println("月份輸入有誤,請重新輸入");

}else{

break;

}

}

printPermanentCalendar(year,?month);

}

/**

*?輸出萬年歷

*?

*?@param?year

*?@param?month

*/

private?static?void?printPermanentCalendar(int?year,int?month){

int?days?=?0;

int?totaldays?=?0;//獲取1990年至查詢的年份的天數(shù)

for?(int?i?=?1900;?i??year;?i++){

totaldays?=?totaldays?+?(isLeapYear(i)???366?:?365);

}

int?beforedays?=?0;//到指定月份的天數(shù)

for?(int?i?=?1;?i?=?month;?i++){

switch?(i)?{

case?1:

case?3:

case?5:

case?7:

case?8:

case?10:

case?12:

days?=?31;

break;

case?4:

case?6:

case?9:

case?11:

days?=?30;

break;

case?2:

days?=?isLeapYear(year)???29?:?28;

break;

default:

break;

}

if?(i??month){

beforedays?=?beforedays?+?days;

}

}

totaldays?=?totaldays?+?beforedays;//總計天數(shù),以判斷周幾;

int?weekDay?=?0;

int?temp?=?(1?+?totaldays)?%?7;

if?(temp?==?0){//1990年1月1日星期一,據(jù)此日0天星期一,以此類推

weekDay?=?0;

}else{

weekDay?=?temp;

}

System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");

for?(int?i?=?0;?i??weekDay;?i++){

System.out.print("\t");

}

for?(int?i?=?1;?i?=?days;?i++){

System.out.print(i?+?"\t");

if?((totaldays?+?i)?%?7?==?6){

System.out.print("\n");

}

}

}

private?static?boolean?isLeapYear(int?year){

return?new?GregorianCalendar().isLeapYear(year);

}

}

運行:

對比了下 360日歷:

結(jié)果正確

我們再測試下 2017 年 2月

對比 ?360 日歷

也是正確

編寫 萬年歷java代碼例如1900年一月一日是星期一。

import?java.util.Calendar;

import?java.util.Date;

import?java.util.Scanner;

public?class?MyCalendar

{

public?static?void?main(String[]?args)

{

Scanner?scanner?=?new?Scanner(System.in);

String?reg?=?"^(\\d+)[^\\d]+((0?[1-9])|(1[012]))$";

while(true)

{

System.out.println("輸入年月(年和月用非數(shù)字隔開:如2015.1)(什么都不輸入直接退出)");

String?line?=?scanner.nextLine().trim();

if("".equals(line))

{

scanner.close();

break;

}

if(!line.matches(reg))

{

continue;

}

int?year?=?Integer.parseInt(line.replaceAll(reg,?"$1"));

int?month?=?Integer.parseInt(line.replaceAll(reg,?"$2"));

System.out.println("日\t一\t二\t三\t四\t五\t六");

Calendar?calendar?=?Calendar.getInstance();

//?這個月的1號是星期幾

calendar.set(year,?month?-?1,?1);

int?day?=?calendar.get(Calendar.DAY_OF_WEEK);

int?start?=?Calendar.SUNDAY;

calendar.add(Calendar.DATE,?-day?+?start);

while(start??day)

{

System.out.print(calendar.get(Calendar.DATE)?+?"\t");

calendar.add(Calendar.DATE,?1);

start++;

}

calendar.set(year,?month?-?1,?1);

Date?now?=?calendar.getTime();

calendar.set(year,?month,?1);

Date?next?=?calendar.getTime();

for(Date?cur?=?now;?cur.before(next);)

{

calendar.setTime(cur);

int?x?=?calendar.get(Calendar.DATE);

String?tmp?=?x??10???"0"?+?x?:?x?+?"";

System.out.print(tmp?+?"\t");

if(calendar.get(Calendar.DAY_OF_WEEK)?==?Calendar.SATURDAY)

{

System.out.println();

}

calendar.add(Calendar.DATE,?1);

cur?=?calendar.getTime();

}

calendar.add(Calendar.DATE,?-1);

int?to?=?calendar.get(Calendar.DAY_OF_WEEK);

int?end?=?Calendar.SATURDAY;

while(to??end)

{

calendar.add(Calendar.DATE,?1);

int?x?=?calendar.get(Calendar.DATE);

String?tmp?=?x??10???"0"?+?x?:?x?+?"";

System.out.print(tmp?+?"\t");

to++;

}

System.out.println();

}

}

}

怎么用JAVA編寫萬年歷!

/*

題目:輸出任意年份任意月份的日歷表(公元后)

思路:

1.已知1年1月1日是星期日,1?%?7?=?1?對應(yīng)的是星期日,2?%?7?=?2?對應(yīng)的是星期一,以此類推;

2.計算當(dāng)年以前所有天數(shù)+當(dāng)年當(dāng)月1號之前所有天數(shù);

a.年份分平年閏年,平年365天,閏年366天;

b.閏年的判斷方法year?%?400?==?0?||?(year?%?100?!=?0??year?%?4?==?0)若為真,則為閏年否則為平年;

c.定義平年/閏年數(shù)組,包含各月天數(shù);

d.遍歷數(shù)組求和,計算當(dāng)年當(dāng)月前總天數(shù);

e.當(dāng)年以前所有天數(shù)+當(dāng)年當(dāng)月前總天數(shù)+1即為1年1月1日到當(dāng)年當(dāng)月1日的總天數(shù);

3.總天數(shù)對7取模,根據(jù)結(jié)果判斷當(dāng)月1號是星期幾,輸出空白區(qū)域;

4.輸出當(dāng)月日歷表,逢星期六換行

*/

import?java.util.Scanner;

class?FindMonthList?{

public?static?void?main(String[]?args){

Scanner?sc?=?new?Scanner(System.in);

System.out.println("請輸入年份:");

int?year?=?sc.nextInt();????????????//年份

if?(year??1)?{????????????????????????//判斷非法輸入年份

System.out.println("輸入錯誤!");

return;

}

System.out.println("請輸入月份:");

int?month?=?sc.nextInt();????????????//月份

if?(month??1?||?month??12)?{????????//判斷非法輸入月份

System.out.println("輸入錯誤!");

return;

}

//輸出表頭

System.out.println("-------"?+?year?+?"?年?"?+?month?+?"?月?"?+?"-------");

System.out.println();

System.out.println("日??一??二??三??四??五??六");

//計算當(dāng)前年份以前所有天數(shù)beforeYearTotalDay;每4年一個閏年,閏年366天,平年365天

int?beforeYearTotalDay?=?((year?-?1)?/?4?*?366)?+?(year-1?-?((year?-?1)?/?4))?*?365;

int[]?arrLeapYear?=?{0,31,29,31,30,31,30,31,31,30,31,30,31};????//閏年各月天數(shù)????int數(shù)組

int[]?arrNormalYear?=?{0,31,28,31,30,31,30,31,31,30,31,30,31};????//平年各月天數(shù)????int數(shù)組

int?beforeMonthTotalDay?=?0;????????????????????????????????????//定義本年當(dāng)月之前月份的總天數(shù)

if?(year?%?400?==?0?||?(year?%?100?!=?0??year?%?4?==?0))?{????//判斷當(dāng)前年份是否是閏年

for?(int?i?=?0?;?i??month?;?i?++?)?{????//for循環(huán)計算當(dāng)月之前總天數(shù)

//計算當(dāng)前月份之前的所有天數(shù)

beforeMonthTotalDay?=?beforeMonthTotalDay?+?arrLeapYear[i];

}

//判斷當(dāng)月1日是星期幾

int?totalDay?=?beforeYearTotalDay?+?beforeMonthTotalDay?+?1;

int?week?=?totalDay?%?7;//已知1年1月1日是星期日,即模7得1對應(yīng)的是星期日

for?(int?i?=?0?;?i??(week?-?1?+?7)?%?7?;?i?++)?{????//如果寫成i??(week-1)會出現(xiàn)i-1的情況

System.out.print("????");//輸出開頭空白

}

for?(int?i?=?1?;i?=?arrLeapYear[month]?;i?++?)?{????//for循環(huán)輸出各月天數(shù)

System.out.print(i?+?"??");

if?(i??10?)?{????????//小于10的數(shù)補一個空格,以便打印整齊

System.out.print("?");

}

if?(i?%?7?==?((7-(week?-?1))?%?7?)?||?i?==?arrLeapYear[month])?{//每逢星期六/尾數(shù)換行

System.out.println();

}

}

}?else?{????????//不是閏年就是平年

for?(int?i?=?0?;?i??month?;?i?++?)?{????//for循環(huán)計算出當(dāng)月之前月份總天數(shù)

beforeMonthTotalDay?=?beforeMonthTotalDay?+?arrNormalYear[i];

}

//判斷當(dāng)月1日是星期幾

int?totalDay?=?beforeYearTotalDay?+?beforeMonthTotalDay?+?1;

int?week?=?totalDay?%?7;//已知1年1月1日是星期日,即模7得1對應(yīng)的是星期日

for?(int?i?=?0?;?i??(week?-?1?+?7)?%?7?;?i?++)?{????//如果寫成i??(week-1)會出現(xiàn)i-1的情況

System.out.print("????");//輸出開頭空白

}

for?(int?i?=?1?;i?=?arrNormalYear[month]?;i?++?)?{//for循環(huán)輸出各月天數(shù)

System.out.print(i?+?"??");

if?(i??10?)?{????????????//小于10的數(shù)補一個空格,以便打印整齊

System.out.print("?");

}

if?(i?%?7?==?((7-(week?-?1))?%?7?)?||?i?==?arrNormalYear[month])?{//每逢星期六/尾數(shù)換行

System.out.println();

}

}

}

}

}

效果:

JAVA萬年歷代碼

/*

題目:輸出任意年份任意月份的日歷表(公元后)

思路:

1.已知1年1月1日是星期日,1?%?7?=?1?對應(yīng)的是星期日,2?%?7?=?2?對應(yīng)的是星期一,以此類推;

2.計算當(dāng)年以前所有天數(shù)+當(dāng)年當(dāng)月1號之前所有天數(shù);

a.年份分平年閏年,平年365天,閏年366天;

b.閏年的判斷方法year?%?400?==?0?||?(year?%?100?!=?0??year?%?4?==?0)若為真,則為閏年否則為平年;

c.定義平年/閏年數(shù)組,包含各月天數(shù);

d.遍歷數(shù)組求和,計算當(dāng)年當(dāng)月前總天數(shù);

e.當(dāng)年以前所有天數(shù)+當(dāng)年當(dāng)月前總天數(shù)+1即為1年1月1日到當(dāng)年當(dāng)月1日的總天數(shù);

3.總天數(shù)對7取模,根據(jù)結(jié)果判斷當(dāng)月1號是星期幾,輸出空白區(qū)域;

4.輸出當(dāng)月日歷表,逢星期六換行

*/

import?java.util.Scanner;

class?FindMonthList?{

public?static?void?main(String[]?args){

Scanner?sc?=?new?Scanner(System.in);

System.out.println("請輸入年份:");

int?year?=?sc.nextInt();????????????//年份

if?(year??1)?{????????????????????????//判斷非法輸入年份

System.out.println("輸入錯誤!");

return;

}

System.out.println("請輸入月份:");

int?month?=?sc.nextInt();????????????//月份

if?(month??1?||?month??12)?{????????//判斷非法輸入月份

System.out.println("輸入錯誤!");

return;

}

//輸出表頭

System.out.println("-------"?+?year?+?"?年?"?+?month?+?"?月?"?+?"-------");

System.out.println();

System.out.println("日??一??二??三??四??五??六");

//計算當(dāng)前年份以前所有天數(shù)beforeYearTotalDay;每4年一個閏年,閏年366天,平年365天

int?beforeYearTotalDay?=?((year?-?1)?/?4?*?366)?+?(year-1?-?((year?-?1)?/?4))?*?365;

int[]?arrLeapYear?=?{0,31,29,31,30,31,30,31,31,30,31,30,31};????//閏年各月天數(shù)????int數(shù)組

int[]?arrNormalYear?=?{0,31,28,31,30,31,30,31,31,30,31,30,31};????//平年各月天數(shù)????int數(shù)組

int?beforeMonthTotalDay?=?0;????????????????????????????????????//定義本年當(dāng)月之前月份的總天數(shù)

if?(year?%?400?==?0?||?(year?%?100?!=?0??year?%?4?==?0))?{????//判斷當(dāng)前年份是否是閏年

for?(int?i?=?0?;?i??month?;?i?++?)?{????//for循環(huán)計算當(dāng)月之前總天數(shù)

//計算當(dāng)前月份之前的所有天數(shù)

beforeMonthTotalDay?=?beforeMonthTotalDay?+?arrLeapYear[i];

}

//判斷當(dāng)月1日是星期幾

int?totalDay?=?beforeYearTotalDay?+?beforeMonthTotalDay?+?1;

int?week?=?totalDay?%?7;//已知1年1月1日是星期日,即模7得1對應(yīng)的是星期日

for?(int?i?=?0?;?i??(week?-?1?+?7)?%?7?;?i?++)?{????//如果寫成i??(week-1)會出現(xiàn)i-1的情況

System.out.print("????");//輸出開頭空白

}

for?(int?i?=?1?;i?=?arrLeapYear[month]?;i?++?)?{????//for循環(huán)輸出各月天數(shù)

System.out.print(i?+?"??");

if?(i??10?)?{????????//小于10的數(shù)補一個空格,以便打印整齊

System.out.print("?");

}

if?(i?%?7?==?((7-(week?-?1))?%?7?)?||?i?==?arrLeapYear[month])?{//每逢星期六/尾數(shù)換行

System.out.println();

}

}

}?else?{????????//不是閏年就是平年

for?(int?i?=?0?;?i??month?;?i?++?)?{????//for循環(huán)計算出當(dāng)月之前月份總天數(shù)

beforeMonthTotalDay?=?beforeMonthTotalDay?+?arrNormalYear[i];

}

//判斷當(dāng)月1日是星期幾

int?totalDay?=?beforeYearTotalDay?+?beforeMonthTotalDay?+?1;

int?week?=?totalDay?%?7;//已知1年1月1日是星期日,即模7得1對應(yīng)的是星期日

for?(int?i?=?0?;?i??(week?-?1?+?7)?%?7?;?i?++)?{????//如果寫成i??(week-1)會出現(xiàn)i-1的情況

System.out.print("????");//輸出開頭空白

}

for?(int?i?=?1?;i?=?arrNormalYear[month]?;i?++?)?{//for循環(huán)輸出各月天數(shù)

System.out.print(i?+?"??");

if?(i??10?)?{????????????//小于10的數(shù)補一個空格,以便打印整齊

System.out.print("?");

}

if?(i?%?7?==?((7-(week?-?1))?%?7?)?||?i?==?arrNormalYear[month])?{//每逢星期六/尾數(shù)換行

System.out.println();

}

}

}

}

}

顯示效果:


本文題目:輸出萬年歷Java代碼 萬年歷java程序代碼
鏈接地址:http://weahome.cn/article/dosgeih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部