• 简易日历表


    在一个页面上输出1901至2007年之间任意一年的简易日历表

    public class Calendar {
        public static void main(String[] args){
            String Weeks="Su Mo Tu We Th Fr Sa";//星期列表
            int i,j;//循环控制列表
            int Ospa3=1;//给出1900年的1月1日为星期一
            //改变year的值(大于1900),就可列出当年的日历表
            int year=2007;
            boolean leap=year%4==0&&year%100!=0||year%400==0;
            for(i=1900;i<year;i++)//计算1901年及其后的每年一月一号对应的星期
                if(i%4==0&&i%100!=0||i%400==0)Ospa3+=2;
                else Ospa3++;
            Ospa3%=7;//表明7天为一个星期
            System.out .println("			Calendar of"+year);
            //在屏幕输出星期列表
            for(i=1;i<3;i++)System.out .print(Weeks);//每行中显示3个星期
            System.out .println("");
            int spa1=0,spa2=0,spa3=0,cou1=0,cou2=0,cou3=0;
            //存放连续3个月对应的日期和当月的总天数
            int day1=1,day2=1,day3=1;
            for(j=1;j<28;j++){
                if((j-1)%7==0){
                    day1=1;day2=1;day3=1;//设置连续3个月的日期输出均从1号开始
                    switch(j/7){//分别设置一年中每个月1日的星期,和当月的总天数
                    case 0:
                        spa1=(Ospa3+cou3)%7;cou1=31;//1月
                        spa2=(spa1+cou1)%7;cou2=leap?29:28;//2月
                        spa3=(spa3+cou2)%7;cou3=31;//3月
                        Ospa3=spa3;
                        break;
                    case 1:
                        spa1=(Ospa3+cou3)%7;cou1=30;//4月
                        spa2=(spa1+cou1)%7;cou2=31;//5月
                        spa3=(spa3+cou2)%7;cou3=30;//6月
                        Ospa3=spa3;
                        break;
                    case 2:
                        spa1=(Ospa3+cou3)%7;cou1=31;//7月
                        spa2=(spa1+cou1)%7;cou2=31;//8月
                        spa3=(spa3+cou2)%7;cou3=30;//9月
                        Ospa3=spa3;
                        break;
                    case 3:
                        spa1=(Ospa3+cou3)%7;cou1=31;//十月
                        spa2=(spa1+cou1)%7;cou2=30;//十一月
                        spa3=(spa3+cou2)%7;cou3=31;//十二月
                        Ospa3=spa3;
                        break;
                    }
                }
                for(i=1;i<=21;i++){//在屏幕上输出日历,一行输出21列
                    if((i-1)/7==0)//每一行的前7列输出第一个月
                        System.out.print(spa1--<=0&&day1<cou1?day1<10?"0"+day1++:""+day1++:"  ");
                    else if((i-1)/7==1)//每一行中间7列输出第二个月
                        System.out.print(spa2--<=0&&day2<cou1?day2<10?"0"+day2++:""+day2++:"  ");
                    else//每一行的后7列输出第3个月
                        System.out.print(spa3--<=0&&day3<cou1?day3<10?"0"+day3++:""+day3++:"  ");
                    if(i%7==0)
                        System.out.print(" ");//每行中,月份之间的空格
                }
                System.out.println("");//换行
            }
        }
    
    }

  • 相关阅读:
    C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(1)
    多线程 C#解决方案小结
    10款交互设计原型开发工具
    创建自定义配置节
    禁用外键 oracle
    GUIDESIGNSTUDIO3中文帮助(1)欢迎使用 GUI Design Studio 3.0
    大数据量的数据库设计思考
    gui design studio 3 中文帮助(2)获取帮助
    NHibernate之旅(24):探索NHibernate二级缓存(下)(转)
    客户端原型GUI Design Studio
  • 原文地址:https://www.cnblogs.com/ljs-666/p/7794793.html
Copyright © 2020-2023  润新知