首頁 > Java > java教程 > Java程式透過滾動小時和月份顯示時間

Java程式透過滾動小時和月份顯示時間

王林
發布: 2023-08-25 21:49:18
轉載
1093 人瀏覽過

Java程式透過滾動小時和月份顯示時間

高效編碼語言的可信度取決於它管理日期和時間的能力。在Java虛擬環境中,我們獲得一些內建的工具,如日期、時間和日曆來處理與日期和時間相關的問題。

  • java。直到日期類別 - 在Java中,有許多包含那些對於程式非常重要的類別。 Date類處理日期和時間的操作。它們是具有可複製、可序列化和可比較介面功能的類別。

  • 提取當前日期和時間 - 使用 Java 提取當前日期和時間有兩種技術。

    • 日期類別的實作

    • #日曆類別的實作

#在日期類別的方法中,首先我們會考慮一個包含日期的字串。透過使用它,我們將獲得日期和時間作為輸出。透過宣告日曆類,我們將建立一個實例類,透過呼叫 getTime() 來取得系統的當前時間。

在今天的這篇文章中,我們將建立一些 Java 程式碼來透過滾動小時和月份來顯示時間。

透過滾動小時和月份來顯示時間的演算法

在此可能的演算法中,我們嘗試示範如何使用 Java 透過滾動小時和月份來顯示時間。

  • 第 1 步 - 開始。

  • 第 2 步 - 宣告年月中各天的函數。

  • 第 3 步 - 聲明,int 總計 =0。

  • 第 4 步 - i

  • 第 5 步 - 如果滿足條件,則使用 isLeapYear(i) 檢查閏年?

  • 第 6 步 - 否則,int i= 1。並檢查 i

  • 步驟 7 - 如果滿足第五個條件;總計=總計 366;或者,總計=總計 365。

  • 第 8 步 - 進行 i 迭代。

  • 第 9 步 - 如果滿足第七個條件。

  • 第 10 步 - 然後,total=total getNumberOfDaysInMonth(year,i);。

  • 第 11 步 - 進行 i 迭代。

  • 第 12 步 - 如果不是,則傳回總計。

  • 第 13 步 - 終止。

透過滾動小時和月份來顯示時間的語法

General Syntax:
public abstract void roll(int calendar_field, boolean up_down)

Using Date class:
package com.DataFlair.DateAndTime;
import java.util.Date;
public class CurrDateUsingDateClass{
   public static void main(String args[]) {
      Date date = new Date();
      System.out.println(date.toString());
   }
}
Using Calendar Class:
package com.DataFlair.DateAndTime;
import java.util.Calendar;
public class CurrDateUsingCalenderClass{
   public static void main(String args[]) {
      Calendar current = Calendar.getInstance();
      System.out.println(current.getTime());
   }
}
登入後複製

上面,我們提到了給定問題的可能語法。透過遵循這些語法,我們將編寫一些程式來透過滾動小時和月來獲取時間。

方法

  • 方法 1 - Java 程式透過捲動小時和月份來顯示時間

Java 程式透過滾動小時和月份來顯示時間

在這些 Java 建置程式碼中,我們嘗試解釋如何將上述演算法和語法應用於按小時和月份滾動顯示時間。

範例 1

import java.util.Calendar;
import java.util.Date;

public class Calendarof2023 {
	public static void main(String[] args) throws Exception{
      Date d1 = new Date();
      Calendar c1 = Calendar.getInstance();
      Calendar c2 = Calendar.getInstance();
      c1.setTime(d1);
      c2.setTime(d1);
      System.out.println("Today the date is " + d1.toString());
      c1.roll(Calendar.MONTH, 50);
      System.out.println("Date after rolling by 50 over month will be "+ c1.getTime().toString());
      c1.roll(Calendar.HOUR, 70);
      System.out.println("Date after rolling by 70 over hours will be "+ c1.getTime().toString());
      c1.roll(Calendar.YEAR, 2);
      System.out.println("Date after rolling by 2 over year is "+ c1.getTime().toString());
      c2.roll(Calendar.MONTH, false);
      System.out.println("Date after false rolling over month will be "+ c2.getTime().toString());
      c2.roll(Calendar.HOUR, true);
      System.out.println("Date after true rolling over hour will be "+ c2.getTime().toString());
      c2.roll(Calendar.YEAR, true);
      System.out.println("Date after true rolling over year is "+ c2.getTime().toString());
	}
}
登入後複製

輸出

Today the date is Mon Apr 10 10:42:31 GMT 2023
Date after rolling by 50 over month will be Sat Jun 10 10:42:31 GMT 2023
Date after rolling by 70 over hours will be Sat Jun 10 08:42:31 GMT 2023
Date after rolling by 2 over year is Tue Jun 10 08:42:31 GMT 2025
Date after false rolling over month will be Fri Mar 10 10:42:31 GMT 2023
Date after true rolling over hour will be Fri Mar 10 11:42:31 GMT 2023
Date after true rolling over year is Sun Mar 10 11:42:31 GMT 2024
登入後複製

範例 2

import java.util.*;
public class Calendar2023 {
	public static void main(String args[]){
      Calendar calndr = Calendar.getInstance();
      System.out.println("The Current Month of the year"+ calndr.get(Calendar.MONTH));
      calndr.roll(Calendar.MONTH, true);
      System.out.println("The New Month is from the year: "+ calndr.get(Calendar.MONTH));
      calndr.roll(Calendar.MONTH, false);

      // Displaying the result after operation
      System.out.println("The new month is: "+ calndr.get(Calendar.MONTH));
	}
}
登入後複製

輸出

The Current Month of the year3
The New Month is from the year: 4
The new month is: 3
登入後複製

範例 3

import java.util.*;

public class Main {
   public static void main(String[] args) throws Exception {
      Date d1 = new Date();
      Calendar cl = Calendar. getInstance();
      
      cl.setTime(d1);
      System.out.println("today is the date - @ "+ d1.toString());
      
      cl. roll(Calendar.MONTH, 100);
      System.out.println("date after a month will be as per the calculation - > " + cl.getTime().toString() );
      
      cl. roll(Calendar.HOUR, 70);
      System.out.println("date after 7 hrs will be today is ->> "+ cl.getTime().toString() );
   }
}
登入後複製

輸出

today is the date - @ Mon Apr 10 10:44:41 GMT 2023
date after a month will be as per the calculation - > Thu Aug 10 10:44:41 GMT 2023
date after 7 hrs will be today is ->> Thu Aug 10 08:44:41 GMT 2023
登入後複製

範例 4

import java.util.Calendar;

public class CalendarExample {
   public static void main(String[] args) {
      Calendar cal = Calendar.getInstance();
      System.out.println("Time is ----- >>:" + cal.getTime());
      
      cal.roll(Calendar.YEAR, false);
      System.out.println("Time rolling down the year, result is here--->>:" + cal.getTime());
      
      cal.roll(Calendar.HOUR, true);
      System.out.println("Time rolling up the hour is now ---->>>:" + cal.getTime());
   }
}

登入後複製

輸出

Time is ----- >>:Mon Apr 10 10:45:26 GMT 2023
Time rolling down the year, result is here--->>:Sun Apr 10 10:45:26 GMT 2022
Time rolling up the hour is now ---->>>:Sun Apr 10 11:45:26 GMT 2022
登入後複製

範例 5

import java.util.*;
 
public class GetCurrentDateAndTime2023{
   public static void main(String args[]){
      int day, month, year;
      int second, minute, hour;
      GregorianCalendar date = new GregorianCalendar();
 
      day = date.get(Calendar.DAY_OF_MONTH);
      month = date.get(Calendar.MONTH);
      year = date.get(Calendar.YEAR);
 
      second = date.get(Calendar.SECOND);
      minute = date.get(Calendar.MINUTE);
      hour = date.get(Calendar.HOUR);
 
      System.out.println("Current date is now --->>  "+day+"/"+(month+1)+"/"+year);
      System.out.println("Current time is now --->> "+hour+" : "+minute+" : "+second);
   }
}
登入後複製

輸出

Current date is now --->>  10/4/2023
Current time is now --->> 10 : 46 : 24
登入後複製

範例 6

package com.DataFlair.DateAndTime;
import java.util.*;
import java.text.*;
public class DateFormatting{
   public static void main(String args[]) {
      Date CurrDate = new Date( );
      SimpleDateFormat formatDate = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
      System.out.println("Current Date(Formatted) Like This:---> " + formatDate.format(CurrDate));
   }
}
登入後複製

輸出

Current Date(Formatted) Like This:---> Mon 2023.04.10 at 10:47:17 AM GM
登入後複製

範例 7

import java.util.Scanner;
public class Tptimedateexample {
 
   public static void main(String[] args) {
      long totalMilliseconds = System.currentTimeMillis();
      long totalSeconds = totalMilliseconds / 1000;
      long currentSecond = (int)(totalSeconds % 60);
      long totalMinutes = totalSeconds / 60;
      long currentMinute = (int)(totalMinutes % 60);
      long totalHours = totalMinutes / 60;
      long currentHour = (int)(totalHours % 24);
      long totalDays = totalHours / 24;
      int currentYear = (int)(totalDays / 365) + 1970;
      long daysInCurrentYear = (totalDays - numberOfLeapYearsSince1970(currentYear)) % 365;
      if (currentHour > 0) daysInCurrentYear++; 
      int currentMonthNum = getMonthFromDays(currentYear, (int) daysInCurrentYear);
      String month = getMonthName(currentMonthNum);
      int daysTillCurrentMonth = getNumOfDaysToReachThatMonth(currentYear, currentMonthNum);

      int startDay = getStartDay(currentYear, currentMonthNum);
      int today = (int) daysInCurrentYear - daysTillCurrentMonth;
      String dayOfWeek = dayNameOfWeek( ((startDay + today) % 7));
      System.out.println("Current date and time is here. Note That---->>>>: " + dayOfWeek + " " + month + " " + today +", " + currentYear +" " + currentHour + ":"+ currentMinute + ":" + currentSecond );

   }

   public static String dayNameOfWeek(int dayOfWeek) {

      switch (dayOfWeek) {
         case 2: return "Monday";
         case 3: return "Tuesday";
         case 4: return "Wednesday";
         case 5: return "Thursday";
         case 6: return "Friday";
         case 7: return "Saturday";
         case 1: return "Sunday";
         default: return null;
      }
   }

   public static int numberOfLeapYearsSince1970(long year) {

      int count = 0;
      for (int i = 1970; i <= year; i++) {
         if (isLeapYear(i))count++;
      }
      return count;
   }


   public static int getMonthFromDays(int year, int days) {
      int dayTracker = 0;
      for (int i = 1; i <= 12; i++) {

         dayTracker += getNumberOfDaysInMonth(year, i);

         if (dayTracker > days) return i;
      }
      return 12;
   }

   public static int getNumOfDaysToReachThatMonth(int year, int month) {
      int dayTracker = 0;
      for (int i = 1; i < month; i++) {
         dayTracker += getNumberOfDaysInMonth(year, i);
      }
      return dayTracker;
   }
    public static int getStartDay(int year, int month) {
      final int START_DAY_FOR_JAN_1_1800 = 3;
      int totalNumberOfDays = getTotalNumberOfDays(year, month);
      return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7;
   }
   public static int getTotalNumberOfDays(int year, int month) {
      int total = 0;
      for (int i = 1800; i < year; i++)
         if (isLeapYear(i))
            total = total + 366;
         else
            total = total + 365;
      for (int i = 1; i < month; i++)
      total = total + getNumberOfDaysInMonth(year, i);

      return total;
   }
   public static int getNumberOfDaysInMonth(int year, int month) {

      if (month == 1 || month == 3 || month == 5 || month == 7 ||
                month == 8 || month == 10 || month == 12)
            return 31;

        if (month == 4 || month == 6 || month == 9 || month == 11)
            return 30;

        if (month == 2) return isLeapYear(year) ? 29 : 28;

      return 0; 
   }
   public static boolean isLeapYear(int year) {
      return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
   }
   public static String getMonthName(int month) {
      String monthName = "";
      switch (month) {
         case 1: monthName = "January"; break;
         case 2: monthName = "February"; break;
         case 3: monthName = "March"; break;
         case 4: monthName = "April"; break;
         case 5: monthName = "May"; break;
         case 6: monthName = "June"; break;
         case 7: monthName = "July"; break;
         case 8: monthName = "August"; break;
         case 9: monthName = "September"; break;
         case 10: monthName = "October"; break;
         case 11: monthName = "November"; break;
         case 12: monthName = "December";
      }

      return monthName;
   }

}
登入後複製

輸出

Current date and time is here. Note That---->>>>: Monday April 10, 2023 10:54:30
登入後複製

結論

在這裡,我們透過語法和演算法了解了一些可能的java程式碼的時間滾動方法。希望這篇文章能幫助您了解這裡提到的各種滾動方法的操作方式,我們透過這些方法解決了這個問題。

以上是Java程式透過滾動小時和月份顯示時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板