Java 通过滚动小时和月份展示时间
一个高效的编码语言的可信度取决于它如何管理日期和时间。在Java虚拟环境中,我们可以使用一些内置设施来处理与日期和时间相关的问题,例如日期、时间和日历。
- java.until日期类 – 在Java中,有许多非常重要的包,Date类处理与日期和时间相关的操作。它们是那种带有可克隆、可序列化和可比较接口特性的类。
-
提取当前日期和时间 – 有两种使用Java提取当前日期和时间的技术。
- 日期类的实现
-
日历类的实现
在日期类的方法中,首先我们将考虑一个包含日期的字符串。通过使用这个字符串,我们将得到日期和时间作为输出。通过声明一个日历类,我们将创建一个实例类来通过调用getTime()获取系统的当前时间。
在本文中,我们将构建一些Java代码来展示通过滚动小时和月份显示时间。
通过滚动小时和月份展示时间的算法
在这个可能的算法中,我们试图演示如何使用Java通过滚动小时和月份来展示时间。
- 步骤1 – 开始。
-
步骤2 – 为年份和月份声明函数。
-
步骤3 – 声明int total = 0。
-
步骤4 – i < year?
-
步骤5 – 如果条件满足,则检查是否为闰年isLeapYear(i)?
-
步骤6 – 否则,int i = 1,并检查i < month?
-
步骤7 – 如果第五个条件满足,则total = total + 366;否则,total = total + 365。
-
步骤8 – 进入i++迭代。
-
步骤9 – 如果第七个条件满足。
-
步骤10 – 然后,total = total + getNumberOfDaysInMonth(year, i)。
-
步骤11 – 进入i++迭代。
-
步骤12 – 否则,返回total。
-
步骤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代码的时间滚动方法。希望这篇文章能帮助您理解这里提到的各种滚动方法的操作方式,以解决此问题。