码迷,mamicode.com
首页 > 其他好文 > 详细

对象和类,日历

时间:2015-06-29 00:41:18      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:日历

package com.xiaolu;
import java.text.DateFormatSymbols;
import java.util.*;
/**
 * @version 1.4 2007-04-07
 * @author Wusicheng
 */
public class HelloWorld {
        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 on 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",new Object[]{weekdayNames[weekday]});
                d.add(Calendar.DAY_OF_MONTH,1);
                weekday=d.get(Calendar.DAY_OF_WEEK);//output the day form Sunday to xinqiliu
            }
            while(weekday!=firstDayOfWeek);
            System.out.println();
            for(int i=1;i<=indent;i++)
                System.out.print("    ");//make ture the first day
            
            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 exits when d is day 1 of the next month
            
            //print final end of line if necessary
            if(weekday!=firstDayOfWeek)System.out.println("");
        }
    }


本文出自 “吴思成java学习” 博客,转载请与作者联系!

对象和类,日历

标签:日历

原文地址:http://wusichegn.blog.51cto.com/10464246/1668859

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!