7
A
回答
11
可以分割成時間的小時和分鐘,然後使用ceil
函數爲:
use POSIX;
my ($hr,$min) = split/:/,$time;
my $rounded_min = ceil($min/15) * 15;
if($rounded_min == 60) {
$rounded_min = 0;
$hr++;
$hr = 0 if($hr == 24);
}
8
最近15分鐘間隔6:07 6:00是,不6:15。你想要最近的15分鐘的時間間隔還是下一個15分鐘的時間間隔?
假設它是最近的,像這樣的東西就是你想要的。
#!/usr/bin/perl
use strict;
use warnings;
use constant FIFTEEN => (15 * 60);
my $now = time;
if (my $diff = $now % FIFTEEN) {
if ($diff < FIFTEEN/2) {
$now -= $diff;
} else {
$now += (15*60) - $diff;
}
}
print scalar localtime $now, "\n";
4
一個簡單的解決方案是使用CPAN的Math::Round。
use strict;
use warnings;
use 5.010;
use Math::Round qw(nearest);
my $current_quarter = nearest(15*60, time());
say scalar localtime($current_quarter);
0
使用sprintf代替ceil和POSIX的第一個答案的細微變化。也不使用任何其他CPAN模塊。這個向上或向下舍入6:07 = 6:00,6:08 = 6:15,6:22 = 6:15和6:23 = 6:30。請注意,如果四捨五入的分鐘數等於60,則會添加一小時。但要正確執行此操作,您必須使用timelocal和localtime函數來添加小時。即增加一個小時可以增加一天,一個月或一年。
#!/usr/bin/perl
my ($hr,$min) = split/:/,$time;
my $interimval = ($min/15);
my $rounded_min = sprintf "%.0f", $interimval;
$rounded_min = $rounded_min * 15;
if($rounded_min == 60)
{
$rounded_min = 0;
$hr++;
$hr = 0 if($hr == 24);
}
相關問題
- 1. 在Excel中舍入到最近的15分鐘間隔時間
- 2. 在SQL Server中將日期時間舍入到最近的15分鐘
- 3. 在Flex中將日期精確到最近的15分鐘間隔
- 4. 如何將時間四捨五入到最接近的15分鐘段
- 5. 將timedelta舍入到最接近的15分鐘
- 6. MYSQL將日期時間舍入爲15分鐘
- 7. 舍入日期時間到四分鐘
- 8. 在JavaScript中將日期舍入到最近的日期。
- 9. DotNet四捨五入倒數日期時間到最後15分鐘
- 10. 如何在Python中將時間戳記舍入到最接近的分鐘?
- 11. 如何將Joda庫的DateTime舍入到最近的X分鐘?
- 12. 將工作狀態分爲整個15分鐘間隔或最近分鐘
- 13. 進入最接近的15分鐘
- 14. 如何將2D矢量「舍入」到最近的15度
- 15. 如何在java中將時間縮短到最接近的15分鐘
- 16. 使用MS Excel,如何將日期/時間格式值舍入到最近的5分鐘?
- 17. 時間四捨五入到最接近的第10分鐘
- 18. 間隔15分鐘的Timepicker
- 19. 獲取時間四捨五入到最近的5分鐘間隔只有幾分鐘轉換爲字符串
- 20. 組表到15分鐘的間隔
- 21. mysql的日期時間按15分鐘
- 22. 如何在SQL中將日期數字舍入到最近的月份?
- 23. 如何將日期時間四捨五入爲最接近的時間段
- 24. T-SQL日期時間四捨五入至最接近的分鐘數和最近小時使用函數
- 25. 圓整日期到10分鐘間隔
- 26. 舍入時間到最近的季度,至少30分鐘的時間
- 27. 如何將時間戳記的分鐘舍入爲15的增量?
- 28. 3 cronjobs,15個分鐘的間隔,相隔5分鐘
- 29. 在java中,我們如何將時間四捨五入到最近的小時和分鐘?
- 30. 如何將時間四捨五入到最近的四分之一和半小時的時間間隔?
整齊,但12:58將成爲12:60和13:00 :-( – 2010-10-12 12:19:23
@島之風Skaar:感謝您指出現在修好了 – codaddict 2010-10-12 12:28:30