编写程序,输出当月日历?

解决方案 »

  1.   

    public class PrintCalendar {    public static void main(String[] args) {
            int startWeekDay = getStartWeekDay();
            int maxDate = getMaxDate();
            printCalendar(startWeekDay, maxDate);
        }    private static void printCalendar(int startWeekDay, int maxDate) {
            int weekStartFix = Calendar.getInstance().getFirstDayOfWeek() + 1;        for (int i = weekStartFix - startWeekDay; i <= maxDate; i++) {
                if (i <= 0) {
                    System.out.print("   ");
                } else {
                    System.out.printf("%3d", i);
                }
                if ((i - weekStartFix + startWeekDay) % 7 == 6) {
                    System.out.println();
                }
            }
            System.out.println();
        }    private static int getMaxDate() {
            return Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);
        }    // 注意 DAY_OF_WEEK 的值从 1 开始,1 表示星期天。
        private static int getStartWeekDay() {
            Calendar c = Calendar.getInstance();
            c.set(Calendar.DAY_OF_MONTH, 1);
            return c.get(Calendar.DAY_OF_WEEK);
        }
    }
      

  2.   

    import java.util.*;
    public class CalendarTest 
    {
    public static void main(String[] args)
    {
    GregorianCalendar d = new GregorianCalendar();
    int today=d.get(Calendar.DAY_OF_MONTH);
    int month=d.get(Calendar.MONTH);
    d.set(Calendar.DAY_OF_MONTH,1);
    int weekday=d.get(Calendar.DAY_OF_WEEK);
    System.out.println("Sun Mon Tue Wen Thu Fri Sat");
    for(int i=Calendar.SUNDAY;i<weekday;++i)
    System.out.print("    ");
    do
    {
    int day=d.get(Calendar.DAY_OF_MONTH);
    System.out.printf("%3d",day);
    if(day==today)
    System.out.print("*");
    else 
        System.out.print(" ");
    if(weekday==Calendar.SATURDAY)
        System.out.println();
    d.add(Calendar.DAY_OF_MONTH,1);
    weekday=d.get(Calendar.DAY_OF_WEEK);
    }while(d.get(Calendar.MONTH)==month);
    if(weekday!=Calendar.SUNDAY)
    System.out.println();
    }}
    带* 的日子表示当天
      

  3.   

    #!/bin/sh
    Input_Month=$1
    Input_Year=$2
    case "$Input_Month" in
      January) Month=1;;
      February) Month=2;;
      March) Month=3;;
      April) Month=4;;
      May) Month=5;;
      June) Month=6;;
      July) Month=7;;
      August) Month=8;;
      September) Month=9;;
      October) Month=10;;
      November) Month=11;;
      December) Month=12;;
      *) echo "Month error!"
    esac
    cal $Month $Input_Year
      

  4.   

    linux下运行的。。将文件按转化成chmod 755 filename
    ./filename month year...运行
      

  5.   

    #!/bin/sh
    Input_Month=$1
    Input_Year=$2
    case "$Input_Month" in
      January) Month=1;;
      February) Month=2;;
      March) Month=3;;
      April) Month=4;;
      May) Month=5;;
      June) Month=6;;
      July) Month=7;;
      August) Month=8;;
      September) Month=9;;
      October) Month=10;;
      November) Month=11;;
      December) Month=12;;
      *) echo "calendar!"
    esac
    cal $Input_Month $Input_Year
    linux下运行的。。将文件按转化成chmod 755 filename
    ./filename month year...运行  结果例子。
    calendar!
        October 2009
    Su Mo Tu We Th Fr Sa 
                 1  2  3
     4  5  6  7  8  9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31