【发布时间】:2016-02-18 04:47:04
【问题描述】:
我的代码如下,问题是我需要它能够使日历对于用户所说的任何输入都是真实的,所以如果用户说我希望它在 1776 年的星期一开始,那么它将为此工作。它现在的工作方式是,它只能从周日开始,每个月都从周日开始,所以如果前一个月在周一结束,日历应该在下个月的周二开始,但如果这是用户输入的任何人,它会回到周日有解决办法吗?
package calendaryear;
import java.util.Scanner;
public class calendaryear {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String month;
String day;
Scanner userinput = new Scanner(System.in);
//enter the day!
System.out.print("Enter day [0 is for Sunday, 1 is for moneday continued]:");
int d = userinput.nextInt();
//enter a year!
System.out.print("Enter a year:");
int y = userinput.nextInt();
// for loop for 12 months!
for (int m = 1; m <= 12; m++){
switch (m) {
case 1:
month = "\n\t January";
break;
case 2:
month = "\n\t February";
break;
case 3:
month = "\n\t March";
break;
case 4:
month = "\n\t April";
break;
case 5:
month = "\n\t May";
break;
case 6:
month = "\n\t June";
break;
case 7:
month = "\n\t July";
break;
case 8:
month = "\n\t August";
break;
case 9:
month = "\n\t September";
break;
case 10:
month = "\n\t October";
break;
case 11:
month = "\n\t November";
break;
case 12:
month = "\n\t December";
break;
default:
month ="";
}
System.out.printf("%" + (34 + month.length()) / 2 + "s %s\n", month, y);
System.out.println(String.format("%39S", "").replace(' ', '-'));
System.out.printf("%-6s%-6s%-6s%-6s%-6s%-6s%-6s\n", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
int l = 30 + ((m + (int)(m / 8.0)) % 2);
if (m == 2) {
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)){
l = 29;
}else {
l = 28;
}
}
d = (d) % 7;
switch (d) {
case 0:
day = "Sunday";
break;
case 1:
day = "Moneday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "";
}
if (d != 0) {
System.out.print(String.format("%" + 6 * d + "s", ""));
}
for (int i = 1; i <= l; i++)
{
System.out.printf("%-6d", i);
if (i % 7 == 0) //<-- this part
{
System.out.println();
}
day += 1;
}
System.out.print("");
}
}
}
【问题讨论】:
标签: java calendar string-formatting