懂java编程的来

来源:百度知道 编辑:UC知道 时间:2024/06/15 22:50:09
import java.util.Calendar;
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);//设置它的年月日