JAVA 不用循环在控制台打印日历

课程中遇到让我们用非循环的方法将日历打印在控制台,由此运用LocalDate的实例。

    int days;
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入年份:");
    int year = sc.nextInt();
    System.out.println("请输入月份:");
    int month = sc.nextInt();
    LocalDate localDate = LocalDate.of(year, month, 1);
    // 从一年,一个月和一天获得一个 LocalDate的实例。
    days = localDate.getMonth().maxLength();
    //获取当前月数的最大天数
    int week = localDate.getDayOfWeek().getValue();
    //获取当前月1号的星期
        if(year % 4==0&&year%100!=0||year%400==0) {
        if(month==2) {
            days = 29;
        }
    }else {
        if(month==2) {
            days=28;
        }
    }//2月比较特殊

接下来就来不用循环的方法来打印出Week的格式

System.out.println("日\t一\t二\t三\t四\t五\t六");
        int i = 0;
        if(i<week) {
            System.out.print("\t");
            i++;
        }
        if(i<week) {
            System.out.print("\t");
            i++;
        }
        if(i<week) {
            System.out.print("\t");
            i++;
        }
        if(i<week) {
            System.out.print("\t");
            i++;
        }
        if(i<week) {
            System.out.print("\t");
            i++;
        }
        if(i<week) {
            System.out.print("\t");
            i++;
        }
        if(i<week) {
            System.out.print("\t");
            i++;
        }

这里考虑倒当前week为当月1号的星期,而日历表中当前月1日星期的value正好为前面空白星期总个数

int day = 1;
        if((day + week)%7==0 && day <= days) {
            System.out.print(day+"\t");
            System.out.println("");
            day++;
        }else  if(day<=days){
            System.out.print(day+"\t");
            day++;
        }if((day + week)%7==0 && day <= days) {
            System.out.print(day+"\t");
            System.out.println("");
            day++;
        }else  if(day<=days){
            System.out.print(day+"\t");
            day++;
        }if((day + week)%7==0 && day <= days) {
            System.out.print(day+"\t");
            System.out.println("");
            day++;
        }else  if(day<=days){
            System.out.print(day+"\t");
            day++;
        }.........//直至大于或等于31次

这里计算出了天数,条件中判断了当前一日应空的距离 和当前月份的总天数days不能小于这里的day
输出结果如下
输出结果如上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中启用SQL控制台打印需要使用Java.sql包中的相关类和方法,具体步骤如下: 1. 首先,需要建立数据库连接,可以使用Java.sql.DriverManager类中的getConnection()方法来连接数据库。 2. 接着,需要创建一个Statement对象,用于执行SQL语句。可以使用Connection类中的createStatement()方法来创建一个新的Statement对象。 3. 执行SQL语句时,可以使用Statement对象的execute()方法或executeQuery()方法。如果执行的是查询语句,可以使用ResultSet类来获取查询结果。 4. 最后,可以使用System.out.println()方法将查询结果打印到控制台。 下面是一个简单的示例代码: ```java import java.sql.*; public class Main { public static void main(String[] args) { try { // 建立数据库连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); // 创建一个Statement对象 Statement stmt = conn.createStatement(); // 执行SQL语句 ResultSet rs = stmt.executeQuery("SELECT * FROM students"); // 打印查询结果 while (rs.next()) { System.out.println(rs.getString("name") + "\t" + rs.getInt("age")); } // 关闭数据库连接 rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } ``` 在上面的代码中,我们通过调用System.out.println()方法将查询结果打印到控制台。如果需要将SQL语句也打印出来,可以在执行SQL语句之前先将SQL语句打印出来,例如: ```java String sql = "SELECT * FROM students"; System.out.println("Executing SQL: " + sql); ResultSet rs = stmt.executeQuery(sql); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值