RiLi.java:17: 找不到符号
符号: 方法 getfanhui()
位置: 类 java.util.GregorianCalendar
                int fanhui = d.getfanhui(); //返回日期是星期
                              ^
RiLi.java:30: 找不到符号
符号: 方法 println(java.lang.String,java.lang.String)
位置: 类 java.io.PrintStream
                        System.out.println( "%4s" , xingqimi
                                  ^
RiLi.java:47: 找不到符号
符号: 方法 println(java.lang.String,int)
位置: 类 java.io.PrintStream
                        System.out.println("%3d" , tian );import java.text.DateFormatSymbols;
import java.util.*;
public class RiLi
{
public static void main ( String [] args )
{
GregorianCalendar d = new GregorianCalendar ();
int tian = d.get ( Calendar.DAY_OF_MONTH );
int yue = d.get ( Calendar.MONTH );

d.set ( Calendar.DAY_OF_MONTH , 1);
int xingqi = d.get ( Calendar.DAY_OF_WEEK );

int fanhui = d.getfanhui(); //返回日期是星期几
int ind = 0 ;

while ( xingqi != fanhui )
{
ind++;
d.add (Calendar.DAY_OF_MONTH, -1 );
xingqi = d.get(Calendar.DAY_OF_WEEK );
}

String [] xingqiming = new DateFormatSymbols().getShortWeekdays();
do
{
System.out.println( "%4s" , xingqiming[xingqi]);
d.add ( Calendar.DAY_OF_MONTH , 1);
xingqi = d.get (Calendar.DAY_OF_WEEK);
}

while ( xingqi != fanhui );
System.out.println();

for ( int i = 1 ; i <= ind ; i++ )
{
System.out.println("  ");
}

d.set(Calendar.DAY_OF_MONTH , 1);
do
{
int day = d.get(Calendar.DAY_OF_MONTH);
System.out.println("%3d" , tian );

if ( day == tian )
{
System.out.println("*");
}
else 
System.out.println("   ");

d.add( Calendar.DAY_OF_MONTH , 1 );
xingqi = d.get( Calendar.DAY_OF_WEEK );

if ( xingqi == fanhui )
{
System.out.println();
}
}
while ( d.get(Calendar.MONTH) == yue );

if ( xingqi != fanhui )
{
System.out.println();
}
}
}
这是抄书上的java 核心技术哪个 写日历的代码 编译报错 可改了还是这样 还有各位神人啊
小弟我初学Java 有没有神人能给我详细的解释下 这个代码呢啊 小弟我没有任何语言基础理解起来这个
有点吃力 Java也才学了一个月回头来看以前学过的就有忘了啊 哎 郁闷啊
                                  ^

解决方案 »

  1.   

    就你上面报错来看 ,
    第一个是报方法找不到 ,也就是说getfanhui()方法有问题
    下面两个是你写错了吧。
    System.out.println( "%4s" , xingqimi 
    应当改成 printf
    System.out.printf( "%4s" , xingqimi 
    既然抄书上的例子,应该是你抄错的可能性比较大(先开始学,都比较粗心),如果要打印日历的话,网上源代码一大把,以后多google :)
    http://zhidao.baidu.com/question/32042860.html
      

  2.   


    import java.text.DateFormatSymbols;
    import java.util.*;
    public class RiLi
    {
    public static void main ( String [] args )
    {
    GregorianCalendar d = new GregorianCalendar ();
    int tian = d.get ( Calendar.DAY_OF_MONTH );
    int yue = d.get ( Calendar.MONTH );

    d.set ( Calendar.DAY_OF_MONTH , 1);
    int xingqi = d.get ( Calendar.DAY_OF_WEEK );

    int fanhui = d.getFirstDayOfWeek(); //返回日期是星期几
    int ind = 0 ;

    while ( xingqi != fanhui )
    {
    ind++;
    d.add (Calendar.DAY_OF_MONTH, -1 );
    xingqi = d.get(Calendar.DAY_OF_WEEK );
    }

    String [] xingqiming = new DateFormatSymbols().getShortWeekdays();
    do
    {
    System.out.printf( "%4s" , xingqiming[xingqi]);
    d.add ( Calendar.DAY_OF_MONTH , 1);
    xingqi = d.get (Calendar.DAY_OF_WEEK);
    }
    while ( xingqi != fanhui );

    System.out.println();

    for ( int i = 1 ; i <= ind ; i++ )
    {
    System.out.println("  ");
    }

    d.set(Calendar.DAY_OF_MONTH , 1);
    do
    {
    int day = d.get(Calendar.DAY_OF_MONTH);
    System.out.printf("%3d" , tian );

    if ( day == tian )
    {
    System.out.println("*");
    }
    else{
    System.out.println("  ");
    }
    d.add( Calendar.DAY_OF_MONTH , 1 );
    xingqi = d.get( Calendar.DAY_OF_WEEK );

    if ( xingqi == fanhui )
    {
    System.out.println();
    }
    }
    while ( d.get(Calendar.MONTH) == yue );

    if ( xingqi != fanhui )
    {
    System.out.println();
    }
    }
    } 打印出: 星期日 星期一 星期二 星期三 星期四 星期五 星期六
      
      9  
      9  
      9  
      9  
      9  
      9    9  
      9  
      9*
      9  
      9  
      9  
      9    9  
      9  
      9  
      9  
      9  
      9  
      9    9  
      9  
      9  
      9  
      9  
      9  
      9    9  
      9  
      9  
      9 
      

  3.   

    java 日历 感觉是老师出的一个题吧 我也做过 就是打印出来有问题