欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Java編寫一個屬于自己的日歷

 更新時間:2022年05月13日 13:04:20   作者:程序喵正在路上  
這篇文章主要為大家介紹了如何利用Java編寫一個屬于自己的日歷,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起嘗試一下

問題提出

編寫程序,輸入年份,打印出該年的年歷(12個月的),效果如下圖所示。

一點提示

使用 Java 自帶的 Calendar 類得到一個 Calendar 類對象,然后我們可以去得到每個月的第一天是星期幾

Calendar 類不能直接 new 得到對象,需要使用 getInstance() 函數(shù)

//得到一個Calendar對象
Calendar c = Calendar.getInstance();

Calendar 類的 set 可以設(shè)置自己想要的日期為當(dāng)前日期

get(Calendar.DAY_OF_WEEK) 可以得到某一天是星期幾,由于其內(nèi)部默認(rèn)為美國時區(qū),所以我們設(shè)置月份和計算星期幾要減一

//設(shè)置日期為當(dāng)前月份的第一天,由于時區(qū)的原因,month-1,get(java.util.Calendar.DAY_OF_WEEK) - 1
c.set(year, month - 1, 1);
//求出第一天是星期幾
int FirstDayInWeek = c.get(Calendar.DAY_OF_WEEK) - 1;

然后通過循環(huán)打印出每個月的日歷,注意大小月和閏月問題。

源碼分享

//導(dǎo)入相關(guān)包
import java.util.Scanner;
import java.util.Calendar;

public class MyCalendar {
    public static void main(String[] args) {
        //保存用戶輸入的年份
        int year;
        //保存每個月的天數(shù)
        int days = 0;
        //保存月份
        String[] months;

        months = new String[13];
        months[1] = "January";
        months[2] = "February";
        months[3] = "March";
        months[4] = "April";
        months[5] = "May";
        months[6] = "June";
        months[7] = "July";
        months[8] = "August";
        months[9] = "September";
        months[10] = "October";
        months[11] = "November";
        months[12] = "December";

        //接受用戶輸入的年份
        Scanner in = new Scanner(System.in);
        System.out.print("Please input years:");
        year = in.nextInt();

        //得到一個Calendar對象
        Calendar c = Calendar.getInstance();

        //循環(huán) 12 個月
        for (int month = 1; month <= 12; month++) {
            //標(biāo)題
            System.out.println("\n  Month's name is " + months[month]);
            for (int i = 1; i <= 27; i++) System.out.print("=");
            System.out.println("\nSun\tMon\tTue\tWed\tThu\tFri\tSat");

            // 判斷當(dāng)前月份的天數(shù)
            if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
                days = 31;
            }
            if (month == 4 || month == 6 || month == 9 || month == 11) {
                days = 30;
            }
            if (month == 2) {
                //閏年判斷
                if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
                    days = 29;
                } else {
                    days = 28;
                }
            }

            //設(shè)置日期為當(dāng)前月份的第一天,由于時區(qū)的原因,month-1,get(java.util.Calendar.DAY_OF_WEEK) - 1
            c.set(year, month - 1, 1);
            //求出第一天是星期幾
            int FirstDayInWeek = c.get(Calendar.DAY_OF_WEEK) - 1;

            //用來控制換行
            int cnt = 0;

            //前面的空位
            for (int j = 0; j < FirstDayInWeek; j++) {
                System.out.print("    ");
                cnt++;
            }

            //打印當(dāng)前月份日歷
            for (int i = 1; i <= days; i++) {
                if (cnt == 7) {
                    System.out.printf("\n");
                    cnt = 0;
                }
                System.out.printf("%-4d", i);
                cnt++;
            }

            System.out.print("\n");
        }
    }
}

到此這篇關(guān)于利用Java編寫一個屬于自己的日歷的文章就介紹到這了,更多相關(guān)Java日歷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java/Android 實現(xiàn)簡單的HTTP服務(wù)器

    Java/Android 實現(xiàn)簡單的HTTP服務(wù)器

    這篇文章主要介紹了Java/Android 如何實現(xiàn)簡單的HTTP服務(wù)器,幫助大家更好的進行功能測試,感興趣的朋友可以了解下
    2020-10-10
  • SpringBoot教程_創(chuàng)建第一個SpringBoot項目

    SpringBoot教程_創(chuàng)建第一個SpringBoot項目

    這篇文章主要介紹了SpringBoot教程_創(chuàng)建第一個SpringBoot項目,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java中容器(頂層容器和中間容器)的布局管理器詳解

    java中容器(頂層容器和中間容器)的布局管理器詳解

    這篇文章主要介紹了java中容器(頂層容器和中間容器)的布局管理器詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java如何將json字符串與實體類互相轉(zhuǎn)換

    Java如何將json字符串與實體類互相轉(zhuǎn)換

    在我們調(diào)用三方平臺接口時,經(jīng)常需要將我們封裝的實體類轉(zhuǎn)換為json作為傳參,下面這篇文章主要給大家介紹了關(guān)于Java如何將json字符串與實體類互相轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • SpringBoot利用Redis解決海量重復(fù)提交問題

    SpringBoot利用Redis解決海量重復(fù)提交問題

    本文主要介紹了SpringBoot利用Redis解決海量重復(fù)提交問題,介紹了三種常見的解決方案,包括使用Redis計數(shù)器,使用Redis分布式鎖和使用Redis發(fā)布/訂閱機制,感興趣的可以了解一下
    2024-03-03
  • 淺談HashMap、HashTable的key和value是否可為null

    淺談HashMap、HashTable的key和value是否可為null

    這篇文章主要介紹了淺談HashMap、HashTable的key和value是否可為null,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 深入分析JAVA Synchronized關(guān)鍵字

    深入分析JAVA Synchronized關(guān)鍵字

    這篇文章主要介紹了析JAVA Synchronized關(guān)鍵字的相關(guān)知識,文中代碼非常詳細,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • 16個SpringBoot擴展接口的總結(jié)和實例

    16個SpringBoot擴展接口的總結(jié)和實例

    Spring Boot是一個開源的Java框架,它簡化了基于Spring的應(yīng)用程序的開發(fā)和部署,它提供了許多強大的特性和擴展接口,本文給大家介紹了16個常用的Spring Boot擴展接口,需要的朋友可以參考下
    2023-09-09
  • java使用SFTP上傳文件到資源服務(wù)器

    java使用SFTP上傳文件到資源服務(wù)器

    這篇文章主要介紹了java使用SFTP上傳文件到資源服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • SpringBoot security安全認(rèn)證登錄的實現(xiàn)方法

    SpringBoot security安全認(rèn)證登錄的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot security安全認(rèn)證登錄的實現(xiàn)方法,也就是使用默認(rèn)用戶和密碼登錄的操作方法,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02

最新評論