DOS万年历(循环的练习)

本文详细介绍了如何在DOS环境下编写一个万年历程序,通过循环计算实现不同年份的日历展示,是学习DOS编程和循环控制结构的实践案例。

这里写图片描述

//万年历
import java.util.Scanner;
class  Calendar
{
    /****************主程序*****************/
    public static void main(String[] args) 
    {
        System.out.println("输入年");
        int year=input();
        System.out.println("输入月");
        int month=input();
        System.out.println("星期日"+'\t'+"星期一"+'\t'
        +"星期二"+'\t'+"星期三"+'\t'+"星期四"+'\t'+
            "星期五"+'\t'+"星期六"+'\t');
        //int day=month_days(year,month);
        //System.out.println("年:"+year);
        //System.out.println("月:"+month);
        //System.out.println("日:"+day);
        //System.out.println(sum_days(year,month));
        layout(year,month);
    }
    /********************一条华丽丽的分割线****************/


    /**********************方法:输入***************************/
    public static int input(){
    Scanner sc=new Scanner(System.in);
    int num=sc.nextInt();
    return num;
    }
    /********************一条华丽丽的分割线****************/


    /*********************判断月份的天数******************/
    public static int month_days(int x1,int x2){
    switch(x2){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:{
    return 31;}
    case 4:
    case 6:
    case 9:
    case 11:{
    return 30;}
    case 2:{
    if((x1%4==0&&x1%100!=0)||(x1%400==0)){
    return 29;
    }else{
    return 28;
    }
    }
    default:{
    return 0;}
    }
    }
    /***********************华丽丽的分割线*****************/


    /**********************计算总天数*********************/
    public static int sum_days(int m1,int m2){
        int sum_days=0;
        for(int i=1900;i<m1;i++){
            for(int j=1;j<=12;j++){
            sum_days=sum_days+month_days(i,j);
            }
        }
        for(int k=1;k<=m2;k++){
        sum_days=sum_days+month_days(m1,k);
        }
        return sum_days;
    }
    /**********************华丽丽的分割线*******************/


    /*********************最后的布局************************/
    public static void layout(int n,int m){
        int xx=(sum_days(n,m)-month_days(n,m))%7;
        for(int i=0;i<=xx;i++){
        System.out.print("    "+"\t");
        }
        System.out.print(" ");
        for(int j=1;j<=month_days(n,m);j++){
        System.out.print(" "+j+" "+'\t'+" ");
        if((xx+j+1)%7==0){
        System.out.println();
        System.out.print("  ");
        }
        }
        System.out.println();
    }
    /**********************华丽丽的分割线*******************/

}
数据很详细 CREATE TABLE `zb_calendar` ( `GregorianDateTime` varchar(255) DEFAULT NULL COMMENT '公历日期时间', `LunarDateTime` varchar(255) DEFAULT NULL COMMENT '农历日期时间', `LunarShow` varchar(255) DEFAULT NULL, `IsJieJia` varchar(255) DEFAULT NULL, `LJie` varchar(255) DEFAULT NULL COMMENT '农历节日', `GJie` varchar(255) DEFAULT NULL COMMENT '公历节日', `Yi` varchar(255) DEFAULT NULL COMMENT '宜', `Ji` varchar(255) DEFAULT NULL COMMENT '忌', `ShenWei` varchar(255) DEFAULT NULL COMMENT '神位', `Taishen` varchar(255) DEFAULT NULL COMMENT '胎神', `Chong` varchar(255) DEFAULT NULL COMMENT '冲煞', `SuiSha` varchar(255) DEFAULT NULL COMMENT '岁煞', `WuxingJiazi` varchar(255) DEFAULT NULL COMMENT '五行甲子', `WuxingNaYear` varchar(255) DEFAULT NULL COMMENT '纳音五行年', `WuxingNaMonth` varchar(255) DEFAULT NULL COMMENT '纳音五行月', `WuxingNaDay` varchar(255) DEFAULT NULL COMMENT '纳音五行日', `MoonName` varchar(255) DEFAULT NULL COMMENT '农历月名称', `XingEast` varchar(255) DEFAULT NULL COMMENT '星宿吉凶(东方星座)', `XingWest` varchar(255) DEFAULT NULL COMMENT '四方(星座)', `PengZu` varchar(255) DEFAULT NULL COMMENT '彭祖百忌', `JianShen` varchar(255) DEFAULT NULL COMMENT '黄历12值神建', `TianGanDiZhiYear` varchar(255) DEFAULT NULL COMMENT '天干地支年', `TianGanDiZhiMonth` varchar(255) DEFAULT NULL COMMENT '天干地支月', `TianGanDiZhiDay` varchar(255) DEFAULT NULL COMMENT '天干地支日', `LMonthName` varchar(255) DEFAULT NULL COMMENT '农历月名称', `LYear` varchar(255) DEFAULT NULL COMMENT '生肖', `LMonth` varchar(255) DEFAULT NULL COMMENT '农历月', `LDay` varchar(255) DEFAULT NULL COMMENT '农历日', `SolarTermName` varchar(255) DEFAULT NULL COMMENT '农历节气的名称' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='万年历';
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值