ゆるゆるプログラミング

・時間の単位変換

ここでは、いくつかの時間の単位を変換するクラスを作成しました。

このクラスでは、日、時、分、秒、ミリ秒の単位変換を行うことができます。

以下は、それぞれの時間の単位の関係を示したものです。

  1日 = 24時間 = 1440分

  1時間 = 60分 = 3600秒

  1分 = 60秒 = 60000ミリ秒

  1秒 = 1000ミリ秒

この関係をJavaのソースコードにしました。

TimeConverter.java ← クリックしてダウンロードページに移動
001:    // 時間の単位の変換
002:    class ConvertingTimeUnits {
003:    	// 日(day)を時間(hour)に変換
004:    	static double day_to_hour( double day )
005:    	{
006:    		// 日に24を掛ける
007:    		return day * 24.0;
008:    	}
009:    
010:    	// 時間(hour)を日(day)に変換
011:    	static double hour_to_day( double hour )
012:    	{
013:    		// 時間を24で割る
014:    		return hour / 24.0;
015:    	}
016:    
017:    	// 時間(hour)を分(minute)に変換
018:    	static double hour_to_minute( double hour )
019:    	{
020:    		// 時間に60を掛ける
021:    		return hour * 60.0;
022:    	}
023:    
024:    	// 分(minute)を時間(hour)に変換
025:    	static double minute_to_hour( double minute )
026:    	{
027:    		// 分を60で割る
028:    		return minute / 60.0;
029:    	}
030:    
031:    	// 分(minute)を秒(second)に変換
032:    	static double minute_to_second( double minute )
033:    	{
034:    		// 分に60を掛ける
035:    		return minute * 60.0;
036:    	}
037:    
038:    	// 秒(second)を分(minute)に変換
039:    	static double second_to_minute( double second )
040:    	{
041:    		// 秒を60で割る
042:    		return second / 60.0;
043:    	}
044:    
045:    	// 秒(second)をミリ秒(msecond)に変換
046:    	static double second_to_msecond( double second )
047:    	{
048:    		// 秒に1000を掛ける
049:    		return second * 1000.0;
050:    	}
051:    
052:    	// ミリ秒(msecond)を秒(second)に変換
053:    	static double msecond_to_second( double msecond )
054:    	{
055:    		// 秒を1000で割る
056:    		return msecond / 1000.0;
057:    	}
058:    }
059:    
060:    
061:    // メイン
062:    public class TimeConverter {
063:    	public static void main( String[] args ) {
064:    		double day;	// 日
065:    		double hour;	// 時
066:    		double minute;	// 分
067:    		double second;	// 秒
068:    		double msecond;	// ミリ秒
069:    
070:    		// 1日 → 時間
071:    		hour = ConvertingTimeUnits.day_to_hour( 1.0 );
072:    		System.out.println( "1日は、" + hour + "時間" );
073:    
074:    		// 1時間 → 分
075:    		minute = ConvertingTimeUnits.hour_to_minute( 1.0 );
076:    		System.out.println( "1時間は、" + minute + "分" );
077:    
078:    		// 1分 → 秒
079:    		second = ConvertingTimeUnits.minute_to_second( 1.0 );
080:    		System.out.println( "1分は、" + second + "秒" );
081:    
082:    		// 1秒 → ミリ秒
083:    		msecond = ConvertingTimeUnits.second_to_msecond( 1.0 );
084:    		System.out.println( "1秒は、" + msecond + "ミリ秒" );
085:    
086:    		// 改行
087:    		System.out.println();
088:    
089:    		// 24時間 → 日
090:    		day = ConvertingTimeUnits.hour_to_day( 24.0 );
091:    		System.out.println( "24時間は、" + day + "日" );
092:    
093:    		// 60分 → 時間
094:    		hour = ConvertingTimeUnits.minute_to_hour( 60.0 );
095:    		System.out.println( "60分は、" + hour + "時間" );
096:    
097:    		// 60秒 → 分
098:    		minute = ConvertingTimeUnits.second_to_minute( 60.0 );
099:    		System.out.println( "60秒は、" + minute + "分" );
100:    
101:    		// 1000ミリ秒 → 秒
102:    		second = ConvertingTimeUnits.msecond_to_second( 1000.0 );
103:    		System.out.println( "1000ミリ秒は、" + second + "秒" );
104:    
105:    		// 改行
106:    		System.out.println();
107:    
108:    		// 1日 → 時間、分、秒、ミリ秒
109:    		hour = ConvertingTimeUnits.day_to_hour( 1.0 );
110:    		minute = ConvertingTimeUnits.hour_to_minute( hour );
111:    		second = ConvertingTimeUnits.minute_to_second( minute );
112:    		msecond = ConvertingTimeUnits.second_to_msecond( second );
113:    		System.out.println( "1日は、" + hour + "時間" );
114:    		System.out.println( "1日は、" + minute + "分" );
115:    		System.out.println( "1日は、" + second + "秒" );
116:    		System.out.println( "1日は、" + msecond + "ミリ秒" );
117:    	}
118:    }

TimeConverter.javaの出力結果

1日は、24.0時間
1時間は、60.0分
1分は、60.0秒
1秒は、1000.0ミリ秒

24時間は、1.0日
60分は、1.0時間
60秒は、1.0分
1000ミリ秒は、1.0秒

1日は、24.0時間
1日は、1440.0分
1日は、86400.0秒
1日は、8.64E7ミリ秒

それでは、単位変換のプログラムのソースコードを解説していきます。

001:    // 時間の単位の変換
002:    class ConvertingTimeUnits {

時間の単位を変換するクラス名を、ConvertingTimeUnitsとしています。

003:    	// 日(day)を時間(hour)に変換
004:    	static double day_to_hour( double day )
005:    	{
006:    		// 日に24を掛ける
007:    		return day * 24.0;
008:    	}
009:    
010:    	// 時間(hour)を日(day)に変換
011:    	static double hour_to_day( double hour )
012:    	{
013:    		// 時間を24で割る
014:    		return hour / 24.0;
015:    	}

日(day)と時間(hour)を相互に変換するメソッドです。

  1日 = 24時間の関係を利用しています。

017:    	// 時間(hour)を分(minute)に変換
018:    	static double hour_to_minute( double hour )
019:    	{
020:    		// 時間に60を掛ける
021:    		return hour * 60.0;
022:    	}
023:    
024:    	// 分(minute)を時間(hour)に変換
025:    	static double minute_to_hour( double minute )
026:    	{
027:    		// 分を60で割る
028:    		return minute / 60.0;
029:    	}

時間(hour)と分(minute)を相互に変換するメソッドです。

  1時間 = 60分の関係を利用しています。

031:    	// 分(minute)を秒(second)に変換
032:    	static double minute_to_second( double minute )
033:    	{
034:    		// 分に60を掛ける
035:    		return minute * 60.0;
036:    	}
037:    
038:    	// 秒(second)を分(minute)に変換
039:    	static double second_to_minute( double second )
040:    	{
041:    		// 秒を60で割る
042:    		return second / 60.0;
043:    	}

分(minute)と秒(second)を相互に変換するメソッドです。

  1分 = 60秒の関係を利用しています。

045:    	// 秒(second)をミリ秒(msecond)に変換
046:    	static double second_to_msecond( double second )
047:    	{
048:    		// 秒に1000を掛ける
049:    		return second * 1000.0;
050:    	}
051:    
052:    	// ミリ秒(msecond)を秒(second)に変換
053:    	static double msecond_to_second( double msecond )
054:    	{
055:    		// 秒を1000で割る
056:    		return msecond / 1000.0;
057:    	}

秒(second)とミリ秒(msecond)を相互に変換するメソッドです。

  1秒 = 1000ミリ秒の関係を利用しています。

ここまでが、時間の単位を変換するクラスConvertingTimeUnitsの説明です。

全ての相互変換をこのクラスに入れるとメソッド数が多くなるので、基本的な変換メソッドを記述しています。

次に、クラスConvertingTimeUnitsを使うソースコードの説明です。

061:    // メイン
062:    public class TimeConverter {
063:    	public static void main( String[] args ) {
064:    		double day;	// 日
065:    		double hour;	// 時
066:    		double minute;	// 分
067:    		double second;	// 秒
068:    		double msecond;	// ミリ秒
069:    
070:    		// 1日 → 時間
071:    		hour = ConvertingTimeUnits.day_to_hour( 1.0 );
072:    		System.out.println( "1日は、" + hour + "時間" );
073:    
074:    		// 1時間 → 分
075:    		minute = ConvertingTimeUnits.hour_to_minute( 1.0 );
076:    		System.out.println( "1時間は、" + minute + "分" );
077:    
078:    		// 1分 → 秒
079:    		second = ConvertingTimeUnits.minute_to_second( 1.0 );
080:    		System.out.println( "1分は、" + second + "秒" );
081:    
082:    		// 1秒 → ミリ秒
083:    		msecond = ConvertingTimeUnits.second_to_msecond( 1.0 );
084:    		System.out.println( "1秒は、" + msecond + "ミリ秒" );
085:    
086:    		// 改行
087:    		System.out.println();
088:    
089:    		// 24時間 → 日
090:    		day = ConvertingTimeUnits.hour_to_day( 24.0 );
091:    		System.out.println( "24時間は、" + day + "日" );
092:    
093:    		// 60分 → 時間
094:    		hour = ConvertingTimeUnits.minute_to_hour( 60.0 );
095:    		System.out.println( "60分は、" + hour + "時間" );
096:    
097:    		// 60秒 → 分
098:    		minute = ConvertingTimeUnits.second_to_minute( 60.0 );
099:    		System.out.println( "60秒は、" + minute + "分" );
100:    
101:    		// 1000ミリ秒 → 秒
102:    		second = ConvertingTimeUnits.msecond_to_second( 1000.0 );
103:    		System.out.println( "1000ミリ秒は、" + second + "秒" );
104:    
105:    		// 改行
106:    		System.out.println();
107:    
108:    		// 1日 → 時間、分、秒、ミリ秒
109:    		hour = ConvertingTimeUnits.day_to_hour( 1.0 );
110:    		minute = ConvertingTimeUnits.hour_to_minute( hour );
111:    		second = ConvertingTimeUnits.minute_to_second( minute );
112:    		msecond = ConvertingTimeUnits.second_to_msecond( second );
113:    		System.out.println( "1日は、" + hour + "時間" );
114:    		System.out.println( "1日は、" + minute + "分" );
115:    		System.out.println( "1日は、" + second + "秒" );
116:    		System.out.println( "1日は、" + msecond + "ミリ秒" );
117:    	}
118:    }

ここでは、各メソッドに値を入れてその結果を表示しています。

変換メソッドstaticであるため、クラスをインスタンス化せずに使用することができます。

■関連コンテンツ

ITで使われる単位 ITで使われる単位を紹介
計算結果の表示 四則演算(足し算/引き算/掛け算/割り算)について
プログラムの構成 Javaのプログラム構成について解説

■新着情報

2020.06.03 円を描く(テキスト版) テキストを円を描く
2020.06.02 文字の間違い探し どの文字が違う?
2020.05.31 九九(くく)の表を作る2 掛け算なしで九九(くく)の表を作成
2020.05.07 サイコロの出目確率 サイコロの目のでる確率は?

■広告

フィギュア予約最大25%OFF+ポイント5%還元!ホビーサーチ

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

 

 

 

 

 

 

 

 

 

Topへ