当前位置: 代码迷 >> Java相关 >> java 中日历如何写
  详细解决方案

java 中日历如何写

热度:24   发布时间:2016-04-22 21:11:42.0
java 中日历怎么写?
java如何让编写日历,我只会一点!可是运行不起来
------解决方案--------------------
import java.text.DateFormatSymbols;
import java.util.*;

public class CalendarTest {
    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);               //设置d的日期是本月的1号
        int weekDay = d.get(Calendar.DAY_OF_WEEK);    //获取当天位于本星期的第几天,也就确定了星期几,值的范围是1-7
        int firstDayOfWeek = d.getFirstDayOfWeek();   //获取一星期的第一天,我们得到的是Calendar.SUNDAY,因为我们一星期的第一天是周日
        
        int indent = 0;    //为了定位本月第一天,定义索引
        while (weekDay != firstDayOfWeek) {
      
            indent++;//缩进个数+1
            d.add(Calendar.DAY_OF_MONTH, -1);//当前天数-1,如果现在是1号,则执行本条代码后,时间变为上一个月最后一天
            weekDay = d.get(Calendar.DAY_OF_WEEK);    //重新获取当天位于本星期的第几天
        }
        
        String[] weekDayNames = new DateFormatSymbols().getShortWeekdays();//获取简短形式的星期字符串数组
       

        for (int i=1; i<weekDayNames.length; i++)//打印星期标题
            System.out.printf("%3s\t", weekDayNames[i]);
        
        System.out.println();//换行
        
        for (int i=1; i<=indent; i++)//确定一星期的一天位置,利用上面indent
            System.out.printf("\t");
        
        //实现输出日期
        d.set(Calendar.MONTH, month);
        d.set(Calendar.DAY_OF_MONTH, 1);
        do {
            //print day
            int day = d.get(Calendar.DAY_OF_MONTH);
            System.out.printf("%3d", day);
            
            if (day == today)
                System.out.print("*");
            System.out.print("\t");
            
            d.add(Calendar.DATE, 1);//天数加1
            weekDay = d.get(Calendar.DAY_OF_WEEK);//刷新weekDay
            if (weekDay == firstDayOfWeek) //如果这天等于星期天则换行
                System.out.println();
        } while (d.get(Calendar.MONTH) == month);
    }
}

------解决方案--------------------
import java.util.Scanner;
public class Menology
{
        public static void main(String[] args)
        {
                Scanner scanner=new Scanner(System.in);
                int flag=1;//循环标志
                int flag1=1;//用户输入年份错误标志,默认为1正确
                int flag2=1;//用户输入月份错误标志,默认为1正确
                int year=0;
  相关解决方案