请教一下各位老师,这个java(日历))代码如何循环输入

weixin_42605125 2018-07-04 12:02:52
import java.util.Scanner;


public class Test1 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in=new Scanner(System.in);
System.out.println("请输入年份");
int year=in.nextInt();
System.out.println("请输入月份");
int month=in.nextInt();
int sum=0;
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int i=1;i<month;i++){
if(i==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
}else{
if(i==4||i==6|i==9||i==11){
sum+=30;
}else{
sum+=31;
}
}
}
int days=0;
if(month==2){
if(year%4==0&&year%100!=0||year%400==0){
days+=29;
}else{
days+=28;
}
}else{
if(month==4||month==6|month==9||month==11){
days+=30;
}else{
days+=31;
}
}
sum+=1;
int wekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
for(int i=1;i<=days;i++){
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}

}
...全文
167 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
北京不不 2018-07-05
  • 打赏
  • 举报
回复
赞成2楼,但是main方法稍微改下。

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (true){
System.out.println("请输入年份");
int year = in.nextInt();
System.out.println("请输入月份");
int month = in.nextInt();
outputCalender(year, month);
System.out.println("\n是否继续,N回车退出,任意键回车继续。");
String c = in.nextLine(); //采用nextLine,可以读取到空白,回车才有效
c = in.nextLine(); //两次nextLine ,解决nextLine获取到上次月份输入后的回车


if (c.equalsIgnoreCase("n")) break;
}
System.out.println("*bye bye*");
}
天行归来 2018-07-04
  • 打赏
  • 举报
回复


public class Test1 {

private static void outputCalender(int year, int month){
int sum = 0;
for (int i = 1900; i < year; i++) {
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
sum += 366;
} else {
sum += 365;
}
}
for (int i = 1; i < month; i++) {
if (i == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
sum += 29;
} else {
sum += 28;
}
} else {
if (i == 4 || i == 6 | i == 9 || i == 11) {
sum += 30;
} else {
sum += 31;
}
}
}
int days = 0;
if (month == 2) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
days += 29;
} else {
days += 28;
}
} else {
if (month == 4 || month == 6 | month == 9 || month == 11) {
days += 30;
} else {
days += 31;
}
}
sum += 1;
int wekday = sum % 7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <= wekday; i++) {
System.out.print("\t");
}
for (int i = 1; i <= days; i++) {
if (sum % 7 == 6) {
System.out.print(i + "\n");
} else {
System.out.print(i + "\t");
}
sum++;
}
}

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (true){
System.out.println("请输入年份");
int year = in.nextInt();
System.out.println("请输入月份");
int month = in.nextInt();
outputCalender(year, month);
System.out.println("\n是否继续,N回车退出,任意键回车继续。");
String c = in.next();
if (c.equalsIgnoreCase("n")) break;
}
System.out.println("*bye bye*");
}

}
发帖
Java

4.9w+

社区成员

Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
帖子事件
创建了帖子
2018-07-04 12:02
社区公告
暂无公告