21xrx.com
2024-12-23 03:27:54 Monday
登录
文章检索 我的文章 写文章
Java编写日历代码:实现日期可视化
2023-06-14 20:40:27 深夜i     --     --
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();//每第七个换一行

      }

    }

    

  }

}

生成

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复