懂java编程的来
来源:百度知道 编辑:UC知道 时间:2024/07/07 07:46:40
import java.util.GregorianCalendar;
public class TestA {
public static void main(String[] args) {
GregorianCalendar d = new GregorianCalendar();
//获取今天是这个月的几号
int today = d.get(Calendar.DAY_OF_MONTH);
//这是第几个月 (0表示1月)
int month = d.get(Calendar.MONTH);
//设置d为这个月的1号
d.set(Calendar.DAY_OF_MONTH, 1);
//获取1号是星期几,0表示星期日
int weekday = d.get(Calendar.DAY_OF_WEEK);
System.out.println("sun mon tue wed thu fri sat");
for (int i = Calendar.SUNDAY; i < weekday; i++) {
//为了打印出最后效果,需满足如果1号不是星期日,就打空格
System.out.print(" ");
}
do {
//获取d是这月的几号,前面已经设置为1号,所以day从1开始
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.printf("%3d", day);
//如果day就是今天的日期,则在数字后跟*
if (day == today) {
System.out.print("*");
} else {
System.out.print(" ");
}
//星期
以下是antolife给您的回答,不能保证100%正确,但可给您一个建议.谢谢!
您的这段代码,逻辑不清楚,别人很难看懂。。这种代码在业界会被boss骂的。。
我花时间帮你写了一个。。同样功能的(也许更强大的多。。)
用户输入某年某月,返回某年某月的日历。和正真日历一模一样。
代码如下(测试通过)
--------------------------------------------------------------
package com.antolife.test;
import java.util.Calendar;
public class Date {
/*
* 先定义一个日历数组。
* 我这里定义长度为37的int数组。
* 当然也可以再大点。但37是最小值。
* 这个数组用来模拟日历。
*/
static private int[] calendar = new int[] {
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0
};
/*
* 这个方法计算某年某月某日是星期几
* 星期天设定为0;
* 星期一为1,以此类推。。。。
*
*
*/
static public int weekOfMonth(int year, int month, int date) {
Calendar c = Calendar.getInstance();// 获得一个Calendar对象
c.set(year, month - 1, date);//设置它的年月日