Skip to content

Commit

Permalink
Fix: [Client][ProgramUtils] 番組長が 60 で割り切れない際に小数第2位で四捨五入する
Browse files Browse the repository at this point in the history
  • Loading branch information
tsukumijima committed Oct 5, 2023
1 parent 43236bb commit 2ffb43c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
10 changes: 6 additions & 4 deletions client/src/utils/ProgramUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ export class ProgramUtils {


/**
* 番組の放送時刻を取得する
* 番組放送時刻の文字列表現を取得する
* @param program 番組情報
* @param is_short 時刻のみ返すかどうか
* @returns 番組の放送時刻
Expand All @@ -437,8 +437,10 @@ export class ProgramUtils {

dayjs.locale('ja'); // ロケールを日本に設定
const start_time = dayjs(program.start_time);
const end_time = dayjs(program.end_time);

// duration が Infinity の場合は、放送時間未定として扱う
// duration が Infinity の場合は、end_time を無視して放送時間未定として扱う
// この時 end_time には便宜上 start_time と同一の時刻が設定されるため、参照してはいけない
if (program.duration === Infinity) {
if (is_short === true) { // 時刻のみ
return `${start_time.format('HH:mm')} ~ --:--`;
Expand All @@ -447,8 +449,8 @@ export class ProgramUtils {
}
}

const end_time = dayjs(program.end_time);
const duration = program.duration / 60; // 分換算
// 分単位の番組長 (割り切れない場合は小数第2位で四捨五入)
const duration = Math.round(program.duration / 60 * 100) / 100;

if (is_short === true) { // 時刻のみ
return `${start_time.format('HH:mm')}${end_time.format('HH:mm')}`;
Expand Down
3 changes: 2 additions & 1 deletion client/src/workers/LivePSIArchivedDataDecoder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ class LivePSIArchivedDataDecoder implements ILivePSIArchivedDataDecoder {
}

// 番組開始時刻と番組長から番組終了時刻を算出
// ただし、番組長が未定の場合は番組終了時刻を番組開始時刻と同一の値にする
// ただし、番組長が未定の場合は便宜上番組終了時刻を番組開始時刻と同一の時刻にする
if (program.duration === Infinity) {
program.end_time = program.start_time;
} else {
Expand Down Expand Up @@ -394,6 +394,7 @@ class LivePSIArchivedDataDecoder implements ILivePSIArchivedDataDecoder {
program.secondary_audio_sampling_rate = null;
}

console.debug('[PSIArchivedDataDecoder] EIT[p/f] decoded.', program);
return program;
}

Expand Down

0 comments on commit 2ffb43c

Please sign in to comment.