帮忙用JAVA编写一个简单的日历
就是输入月份可以显示周几。不用考虑二月的28天。比如输入7和4就会显示七月份的日历和七月四号是周几。谢谢要用到循环语句...
就是输入月份可以显示周几。不用考虑二月的28天。比如输入7和4就会显示七月份的日历和七月四号是周几。谢谢
要用到循环语句 展开
要用到循环语句 展开
1个回答
展开全部
这是我几年前写的
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
public class $ {
private static int[] DAYS = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
public static void main(String[] args) {
long l1 = System.currentTimeMillis();
List data = rili(2015, 1, 2015, 12);
long l2 = System.currentTimeMillis();
for (int i = 0; i < data.size(); i++) {
System.out.println(data.get(i));
}
System.out.println((l2 - l1) + "MS");
}
private static List rili(int startYear, int startMonth, int endYear, int endMonth) {
if (startYear > endYear || (startYear == endYear && startMonth > endMonth)) {
return null;
}
List data = new ArrayList();
for (int ii = startYear; ii <= endYear; ii++) {
int startM = startMonth - 1;
int endM = endMonth - 1;
if (startYear < endYear) {
if (ii == endYear) {
endM = 11;
} else {
startM = 0;
}
}
for (int i = startM; i <= endM; i++) {
data.add("-----------------------" + ii + "年" + (i + 1) + "月-----------------------");
data.add("日\t一\t二\t三\t四\t五\t六");
int day = days(ii, i);
StringBuffer buf = new StringBuffer();
int idx = 1;
while (idx <= day) {
int len = 0;
if (idx == 1) {
Calendar c = Calendar.getInstance();
c.set(ii, i, idx);
int xingqi = c.get(Calendar.DAY_OF_WEEK);
len = getLen(xingqi);
buf.append(addBlank(len));
}
buf.append(idx++);
for (int k = len + 1; k < 7; k++) {
if (idx > day) {
break;
}
buf.append("\t" + (idx++));
}
buf.append("\n");
}
data.add(buf);
}
}
return data;
}
private static StringBuffer addBlank(int len) {
StringBuffer buf = new StringBuffer();
for (int index = 0; index < len; index++) {
buf.append("\t");
}
return buf;
}
private static int getLen(int xingqi) {
return xingqi == Calendar.SUNDAY ? 0 : xingqi - 1;
}
public static int days(int year, int month) {
if (month != 1) {
return DAYS[month];
}
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 29;
}
return DAYS[month];
}
}
追问
大神,能说一下思路么
追答
这有什么思路。。。。
取第一天是星期几,然后就用循环往后排,遇到星期天,就换行;遇到月底,就换到下个月
这个代码很多,但是大部分都是控制输出格式的。
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询