java中的小问题

来源:互联网 发布:网络爬虫 谷歌翻译 编辑:程序博客网 时间:2024/06/05 00:38
想请问一下怎么把输出的星期几弄成英文格式的,还有怎么把如果是逢周六周日就输出(“^_^”),而不是输出数字呢?


import java.text.DateFormatSymbols;
import java.util.*;
/*
* @author Letitia
* 2014-04-02
* function print current calendar
*/
public class CalendarTest
{
    


private static final int Saturday = 0;
private static final int Sunday = 0;


public static void main(String[] args)
    {
        //construct d as current date
        GregorianCalendar d = new GregorianCalendar();
        
        int today = d.get(Calendar.DAY_OF_MONTH);
        int month = d.get(Calendar.MONTH);
        
        //set d to start date of the month
        d.set(Calendar.DAY_OF_MONTH,1);
        int weekday = d.get(Calendar.DAY_OF_WEEK);
        
        //get first day of week(Sunday in the U.S)
        int firstDayOfWeek = d.getFirstDayOfWeek();
        
        //determine the required indentation for the first line
        int indent = 0;
        while(weekday != firstDayOfWeek)
        {
            indent++;
            d.add(Calendar.DAY_OF_MONTH, -1);
            weekday = d.get(Calendar.DAY_OF_WEEK);
        }
        
        //print weekday names
        String[] weekdayNames = new DateFormatSymbols().getShortWeekdays();
        do
        {
            System.out.printf("%4s", weekdayNames[weekday]);
            d.add(Calendar.DAY_OF_MONTH, 1);
            weekday = d.get(Calendar.DAY_OF_WEEK);
        }
        
        while(weekday != firstDayOfWeek);
        System.out.println();
        for(int i = 1; i <= indent; i++)
            System.out.print("    ");
        d.set(Calendar.DAY_OF_MONTH, 1);
        do
        {
            //print day
            int day = d.get(Calendar.DAY_OF_MONTH);
            System.out.printf("%3d", day);
            
            //mark current day with *
            if (day ==today)
                System.out.print("*");
            else System.out.print(" ");
            
            // advance d to the next day
            d.add(Calendar.DAY_OF_MONTH, 1);
            weekday = d.get(Calendar.DAY_OF_WEEK);
            
            // start a new line at the start of the week
            if(weekday == firstDayOfWeek)
                System.out.println();
            }
        while(d.get(Calendar.MONTH) == month);
        //the loop exist when d is day 1 of the next month
        
        //print final end of line if necessary
        if(weekday != firstDayOfWeek)
            System.out.println();
            
    }
}
输出结果是:
星期日 星期一 星期二 星期三 星期四 星期五 星期六
                 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
0 0
原创粉丝点击