21xrx.com
2025-04-04 06:23:34 Friday
文章检索 我的文章 写文章
Java编写日历代码:实现日期可视化
2023-06-14 20:40:27 深夜i     18     0
Java编程 日期解析 Calendar类

在计算机编程中,日历是一个经常被使用的基本工具。Java作为一种强大的编程语言,可以用来编写日历代码,以实现日期的可视化。下面介绍如何用Java编写一个简单的日历。

1.获取当前日期

Java中可以使用Date类来获取当前日期,代码如下:

import java.util.Date;
public class Calender {
  public static void main(String[] args) {
    Date date = new Date();//获取当前日期
    System.out.println(date);//打印出当前日期
  }
}

2.解析日期并输出日历

在Java中可以使用SimpleDateFormat来解析日期,并将其转化为我们所需的日期格式。接下来,我们可以通过使用Calendar类来获取某个月份的天数,以及获取当月第一天是星期几,以此来输出一个日历。

代码如下:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Calender {
  public static void main(String[] args) {
    Date date = new Date();//获取当前日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
    Calendar c = Calendar.getInstance();//获取实例
    c.setTime(date);//设置时间
    int year = c.get(Calendar.YEAR);//获取年份
    int month = c.get(Calendar.MONTH);//获取月份,需要加1
    int day = c.get(Calendar.DAY_OF_MONTH);//获取日
    //输出日期信息
    System.out.println(year + "年" + (month + 1) + "月" + day + "日");
    //获取某个月的天数
    c.set(Calendar.DAY_OF_MONTH, 1);//将日期设置为当月第一天
    int count = c.getActualMaximum(Calendar.DAY_OF_MONTH);//获取本月天数
    //获取当月第一天是星期几
    int week = c.get(Calendar.DAY_OF_WEEK) - 1;//获取到为星期日时返回0,星期一时返回1,以此类推
    //输出日历
    System.out.println("日\t一\t二\t三\t四\t五\t六");
    for(int i = 0; i < week; i++) {
      System.out.print("\t");//输出空格
    }
    for(int i = 1; i <= count; i++) {
      System.out.print(i + "\t");
      if((i + week) % 7 == 0) {
        System.out.println();//每第七个换一行
      }
    }
  }
}

3.实现日期可视化

为了让日历更美观,我们可以通过在控制台上输出一些特殊字符来实现日期的可视化,如下代码所示:

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Calender {
  public static void main(String[] args) {
    Date date = new Date();//获取当前日期
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
    Calendar c = Calendar.getInstance();//获取实例
    c.setTime(date);//设置时间
    int year = c.get(Calendar.YEAR);//获取年份
    int month = c.get(Calendar.MONTH);//获取月份,需要加1
    int day = c.get(Calendar.DAY_OF_MONTH);//获取日
    //输出日期信息
    System.out.println(year + "年" + (month + 1) + "月" + day + "日");
    
    //获取某个月的天数
    c.set(Calendar.DAY_OF_MONTH, 1);//将日期设置为当月第一天
    int count = c.getActualMaximum(Calendar.DAY_OF_MONTH);//获取本月天数
    
    //获取当月第一天是星期几
    int week = c.get(Calendar.DAY_OF_WEEK) - 1;//获取到为星期日时返回0,星期一时返回1,以此类推
    
    //输出日历
    System.out.println("日\t一\t二\t三\t四\t五\t六");
    for(int i = 0; i < week; i++) {
      System.out.print(" \t");//输出空格
    }
    for(int i = 1; i <= count; i++) {
      if(i == day) {
        System.out.print("*");
      }
      System.out.print(i + "\t");
      if((i + week) % 7 == 0) {
        System.out.println();//每第七个换一行
      }
    }
    
  }
}

生成

  
  

评论区

请求出错了