java基础结合-方法的使用

渡星河
2022-11-14 / 1 评论 / 29 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年11月14日,已超过674天没有更新,若内容或图片失效,请留言反馈。

这次是把之前学的,稍微有点难度的代码进行一个大杂烩

  1. 数组的排序
  2. 数组数据更新(删除)
  3. 打印梯形(自己加的)
  4. 输出月份
  5. 使用方法的调用
import java.util.Scanner;
public class test{
    //mian方法进行冒泡排序
    static Scanner srf = new Scanner(System.in);
    public static void main(String[] args){
        int[] sort = new int[7];
        sort[0]=45;
        sort[1]=23;
        sort[2]=21;
        sort[3]=15;
        sort[4]=99;
        sort[5]=12;
        sort[6]=78;
        south("排序前");
        //调用函数
        traverse(sort);
        for(int i = 0;i<sort.length-1;i++){
            for(int j = 0;j<sort.length-1;j++){
                if(sort[j]>sort[j+1]){
                    int max = sort[j];
                    sort[j]=sort[j+1];
                    sort[j+1]=max;
                }
            }
        }
        south("排序后");
        //调用函数
        traverse(sort);
        //删除第四个元素后面的元素依次往前走
        int delnum = 4;
        for(int i = delnum;i<sort.length;i++){
            sort[i-1]=sort[i];
        }
        sort[sort.length-1]=0;
        south("删除后");
        //调用函数
        traverse(sort);
        //用for循环输出一个等腰梯形
        //        *****
        //       *******
        //      *********
        //     ***********
        //先打印出左边空白处,在打印左边梯形,打印右边三角形
        south("\n打印一个等腰梯形--------------------------------------");
        for(int h=1;h<=4;h++){
            // 打印左边空白
            for(int zk =4;zk>h;zk--){
                soul(" ");
            }
            //打印左边梯形
            for(int zt = 4;zt<=h+6;zt++){
                soul("*");
            }
            // 打印右边三角形
            for(int yx = 1;yx<=h;yx++){
                soul("*");
            }
            south("");
        }
        south("\n打印指定月份的日历--------------------------------------");
        //获取年月
        south("\n请输入年份");
        int year = srf.nextInt();
        south("请输入月份");
        int month = srf.nextInt();
        //懂的都懂
        //做个判断,判断数据是否违法
        if (year < 1900) {
            south("时间必须大于等于1900年哦");
            return;
        } else if (month==0||month>12) {
            south("你没事吧,没事就吃溜溜梅");
            return;
        }
        south("---------"+year+"年"+month+"月---------\n");
        south("一\t二\t三\t四\t五\t六\t日");
        int total = 0;
        //计算出从1900年到year需要的天数,不包含year那年的天数
        for(int ye = 1900;ye < year;ye++){
            //我们需要判断是闰年的情况
            if((ye%4)==0 && (ye%100)!=0 ||(ye%400)==0){
                total+=366;
            }else {
                total+=365;
            }
        }
        //计算月份天数
        for(int yu = 1;yu<month;yu++){
            if(yu == 4 || yu == 6 || yu == 9 || yu == 11){
                total+=30;
            }else if(yu == 2){
                if(pdyear(year)){
                    total+=29;
                }else{
                    total+=28;
                }

            }else{
                total+=31;
            }
        }
        //计算month当月有多少天
        //定义变量设置这个月天数
        int day;
        if(month == 4 || month == 6 || month == 9 || month == 11){
            day=30;
        }else if(month == 2){
            if(pdyear(year)){
                day=29;
            }else{
                day=28;
            }
        }else{
            day=31;
        }
        //总天数去与7取余计算出需要空格多少
        int kon = total%7;
        //打印前面的空格对齐星期
        for (int i = 1; i <=kon; i++) {
            System.out.print("\t");
        }
        //打印出顺序的月

        for (int i = 1; i <= day; i++) {
            if ((i+total)%7==0) {
                System.out.println(i);

            }else {
                System.out.print(i+"\t");
            }
        }

    }

    //遍历打印函数
    public static void traverse(int[] arr){
        for (int j : arr) {
            System.out.print(" " + j);
        }
    }
    //换行输出函数
    public static void south(String text){
        System.out.println(text);
    }
    //不换行输出函数
    public static void soul(String text){
        System.out.print(text);
    }
    public static boolean pdyear(int year){
        return (year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0;
    }

}

输出结果

2

评论 (1)

取消
  1. 头像
    山月 作者
    Windows 10 · Google Chrome

    搞一个日期推算

    回复