最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)按年月打印日歷功能【基于Calendar】

 更新時(shí)間:2018年03月13日 15:06:19   作者:lizonghuan  
這篇文章主要介紹了Java實(shí)現(xiàn)按年月打印日歷功能,涉及java基于Calendar進(jìn)行日期運(yùn)算的相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Java實(shí)現(xiàn)按年月打印日歷功能。分享給大家供大家參考,具體如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarBook {
  public static void main(String[] args) throws ParseException {
    CalendarBook cb = new CalendarBook();
    cb.printWeekTitle();
    cb.printCalendar(2018, 3);
  }
  public void printCalendar(int year, int month) throws ParseException {
    String monthStr; // 格式化月份,因?yàn)橐D(zhuǎn)成yyyyMMdd格式的
    if (month < 10) {
      monthStr = "0" + month;
    } else {
      monthStr = month + ""; // 數(shù)字跟字符串拼接轉(zhuǎn)成字符串格式
    }
    String yearMonthStr = year + monthStr;
    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
    Calendar calendarEnd = Calendar.getInstance();
    Calendar calendarStart = Calendar.getInstance();
    // 根據(jù)年份和月份得到輸入月份有多少天
    int monthDays = getMonthLastDay(year, month);
    // 月初的date字符串
    String dateStartStr = yearMonthStr + "01";
    // 月末的date字符串
    String dateEndStr = yearMonthStr + monthDays;
    Date startDate = sdf.parse(dateStartStr);
    Date endDate = sdf.parse(dateEndStr);
    calendarStart.setTime(startDate);
    calendarEnd.setTime(endDate);
    // 得到輸入月份有多少周
    int weeks = calendarEnd.get(Calendar.WEEK_OF_MONTH);
    // 得到當(dāng)月第一天是星期幾,這里周日為第一天,從1開始,周一則為2
    int dayOfWeek = calendarStart.get(Calendar.DAY_OF_WEEK);
    int day = 1;
    // 當(dāng)月的第一周做特殊處理,單獨(dú)打印一行
    for (int i = 1; i <= 7; i++) {
      if (i >= dayOfWeek) {
        System.out.print(" " + day + " ");
        day++;
      } else {
        System.out.print("  ");
      }
    }
    System.out.println();
    // 開始打印從第二周開始的日期
    for (int week = 1; week < weeks; week++) {
      for (int i = 1; i <= 7; i++) {
        if (day > monthDays) {
          break;
        }
        if (day < 10) {
          System.out.print(" " + day + " ");
        } else {
          System.out.print(day + " ");
        }
        day++;
      }
      System.out.println();
    }
  }
  public int getMonthLastDay(int year, int month) {
    int monthDay;
    int[][] day = { { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
        { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 } };
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
      // 閏年
      monthDay = day[1][month];
    } else {
      monthDay = day[0][month];
    }
    return monthDay;
  }
  public void printWeekTitle() {
    System.out.println("日" + "   " + "一" + "   " + "二" + "   " + "三"
        + "   " + "四" + "   " + "五" + "   " + "六");
  }
}

運(yùn)行結(jié)果截圖(運(yùn)行效果,字體大小5號(hào)最佳):

PS:這里再為大家推薦幾款關(guān)于日期與時(shí)間計(jì)算的在線工具供大家參考使用:

在線日期/天數(shù)計(jì)算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

在線萬(wàn)年歷日歷:
http://tools.jb51.net/bianmin/wannianli

在線陰歷/陽(yáng)歷轉(zhuǎn)換工具:
http://tools.jb51.net/bianmin/yinli2yangli

Unix時(shí)間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《java日期與時(shí)間操作技巧匯總》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • JVM內(nèi)存模型知識(shí)點(diǎn)總結(jié)

    JVM內(nèi)存模型知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于JVM內(nèi)存模型的學(xué)習(xí)心得以及相關(guān)知識(shí)點(diǎn)總結(jié),有興趣的朋友們跟著學(xué)習(xí)下。
    2019-05-05
  • @RequestMapping對(duì)不同參數(shù)的接收方式示例詳解

    @RequestMapping對(duì)不同參數(shù)的接收方式示例詳解

    Spring?MVC框架中,@RequestMapping注解用于映射URL到控制器方法,不同的參數(shù)類型如簡(jiǎn)單參數(shù)、實(shí)體參數(shù)、數(shù)組參數(shù)、集合參數(shù)、日期參數(shù)和JSON參數(shù),本文給大家介紹@RequestMapping對(duì)不同參數(shù)的接收方式,感興趣的朋友一起看看吧
    2024-10-10
  • SpringBoot @ControllerAdvice 攔截異常并統(tǒng)一處理

    SpringBoot @ControllerAdvice 攔截異常并統(tǒng)一處理

    這篇文章主要介紹了SpringBoot @ControllerAdvice 攔截異常并統(tǒng)一處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • springboot如何使用vue打包過(guò)的頁(yè)面資源

    springboot如何使用vue打包過(guò)的頁(yè)面資源

    這篇文章主要介紹了springboot如何使用vue打包過(guò)的頁(yè)面資源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Spring?Boot條件注解之@ConditionalOnProperty完全解析

    Spring?Boot條件注解之@ConditionalOnProperty完全解析

    這篇文章主要介紹了SpringBoot中的@ConditionalOnProperty注解,通過(guò)配置文件屬性值控制Bean或配置類的加載,實(shí)現(xiàn)功能開關(guān)和環(huán)境配置,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-02-02
  • SpringBoot bean依賴屬性配置詳細(xì)介紹

    SpringBoot bean依賴屬性配置詳細(xì)介紹

    Spring容器是Spring的核心,一切SpringBean都存儲(chǔ)在Spring容器內(nèi)。可以說(shuō)bean是spring核心中的核心。Bean配置信息定義了Bean的實(shí)現(xiàn)及依賴關(guān)系,這篇文章主要介紹了SpringBoot bean依賴屬性配置
    2022-09-09
  • 史上最全面的Spring Boot配置文件深入講解

    史上最全面的Spring Boot配置文件深入講解

    Springboot極大的簡(jiǎn)化了Spring框架的使用配置流程,在核心配置文件里,幾乎可以完成所有的配置工作,下面這篇文章主要給大家介紹了關(guān)于Spring Boot配置文件的相關(guān)資料,文中介紹的非常全面,需要的朋友可以參考下
    2018-12-12
  • 使用SpringSecurity+defaultSuccessUrl不跳轉(zhuǎn)指定頁(yè)面的問題解決方法

    使用SpringSecurity+defaultSuccessUrl不跳轉(zhuǎn)指定頁(yè)面的問題解決方法

    本人是用springsecurity的新手,今天遇到defaultSuccessUrl不跳轉(zhuǎn)指定頁(yè)面的問題,真是頭疼死了,網(wǎng)上找遍了解決方法都解決不了,今天給大家分享使用SpringSecurity+defaultSuccessUrl不跳轉(zhuǎn)指定頁(yè)面的問題解決方法,感興趣的朋友一起看看吧
    2023-12-12
  • Java中命令行參數(shù)--與-D的區(qū)別

    Java中命令行參數(shù)--與-D的區(qū)別

    本文主要介紹了Java中命令行參數(shù)--與-D的區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spring-cloud Config Server的3種配置方式

    Spring-cloud Config Server的3種配置方式

    這篇文章主要介紹了Spring-cloud Config Server的3種配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

株洲市| 上蔡县| 渝北区| 平潭县| 涟水县| 双鸭山市| 田东县| 中山市| 文安县| 邯郸县| 久治县| 双鸭山市| 庄河市| 无为县| 班戈县| 西昌市| 五台县| 南靖县| 峨眉山市| 金塔县| 宝清县| 新野县| 博湖县| 启东市| 德州市| 五莲县| 年辖:市辖区| 祁阳县| 即墨市| 耿马| 溧水县| 攀枝花市| 乌鲁木齐县| 门头沟区| 浦县| 麦盖提县| 达孜县| 楚雄市| 新乡县| 尚义县| 西藏|