输出当前月份日历(Print a calendar of present month)

 

/**
@version  1.0 2008-05-11
@author   Cay S.Hostsman
Modified by Climbing Huang when learning Core Java 2
*/

import  java.util. * ;

public   class  CalendarTest_CN
{  
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);

   
//  print heading
   System.out.println( " 星期一  星期二  星期三  星期四  星期五  星期六  星期日 " );

   
//  indent first line of calendar
    for  ( int  i  =  Calendar.MONDAY; i  <  weekday; i ++  )
      System.out.print(
"          " );

   
do
   {  
      
//  print day
       int  day  =  d.get(Calendar.DAY_OF_MONTH);
      System.out.printf(
" %6d " , day);

      
//  mark current day with *
       if  (day  ==  today)
         System.out.print(
" " );
      
else
         System.out.print(
"    " );

      
//  start a new line after every Saturday
       if  (weekday  ==  Calendar.SUNDAY)
         System.out.println();

      
//  advance d to the next day
      d.add(Calendar.DAY_OF_MONTH,  1 );
      weekday 
=  d.get(Calendar.DAY_OF_WEEK);
   } 
   
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  !=  Calendar.MONDAY)
      System.out.println();
}
}

 

A snapshot of execution result:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值