package classDemo01;
import java.text.DateFormatSymbols ;
import java.util.* ;
public class DateDemo01 {
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) ;
int firstDayOfweek = d.getFirstDayOfWeek() ;
int indent = 0 ;
while(weekday != firstDayOfweek)
{
indent++ ;
d.add(Calendar.DAY_OF_MONTH,-1) ;
weekday = d.get(Calendar.DAY_OF_WEEK) ;
}
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("    ") ;//   i=0    看看可不可以!!!!!!!!!!!!!!!!!   
}
d.set(Calendar.DAY_OF_MONTH,1) ;
do
{
int day = d.get(Calendar.DAY_OF_MONTH) ;
System.out.printf("%3d",day) ;
if(day == today){
System.out.print("*") ;
}else{
System.out.print(" ") ;
}
d.add(Calendar.DAY_OF_MONTH,1) ;
weekday = d.get(Calendar.DAY_OF_WEEK) ;
if(weekday == firstDayOfweek){
System.out.println() ;
}
}
while(d.get(Calendar.MONTH)==month) ;
if(weekday != firstDayOfweek){
System.out.println() ;
}
}
}
为什么结果变成这样了图片这样  没对齐~~~~   麻烦各位大神了~~   java日历

解决方案 »

  1.   

    import java.text.DateFormatSymbols ;
    import java.util.* ;
    public class SSSS {
    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) ;
    int firstDayOfweek = d.getFirstDayOfWeek() ;
    int indent = 0 ;
    while(weekday != firstDayOfweek)
    {
    indent++ ;
    d.add(Calendar.DAY_OF_MONTH,-1) ;
    weekday = d.get(Calendar.DAY_OF_WEEK) ;
    }
    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("    ") ;//   i=0    看看可不可以!!!!!!!!!!!!!!!!!   
    }
    d.set(Calendar.DAY_OF_MONTH,1) ;
    do
    {
    int day = d.get(Calendar.DAY_OF_MONTH) ;
    System.out.printf("%5d",day) ;
    if(day == today){
    System.out.print("*") ;
    }else{
    System.out.print(" ") ;
    }
    d.add(Calendar.DAY_OF_MONTH,1) ;
    weekday = d.get(Calendar.DAY_OF_WEEK) ;
    if(weekday == firstDayOfweek){
    System.out.println() ;
    }
    }
    while(d.get(Calendar.MONTH)==month) ;
    if(weekday != firstDayOfweek){
    System.out.println() ;
    }
    }
    }
    我帮你解决了哦 有时间可以请教一下你吗 我的QQ976317873加我哦备注Java爱好者
      

  2.   

    请问下  为什么, System.out.printf("%5d",day) ;   改成%5d呢?