標題:
C# 7 408 轉換工時數
[打印本頁]
作者:
may
時間:
2024-1-8 22:31
標題:
C# 7 408 轉換工時數
TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 15:02:05
1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS04資料夾中的CSD04.cs進行編寫。依下列題意進行作答:輸入工時數,再輸出相對應的日期格式,使輸出值符合題意要求。檔案名稱請另存新檔為CSA04.cs,儲存於C:\ANS.CSF\CS04資料夾,再進行評分。
2. 設計說明:
請撰寫程式,讓使用者輸入工作總時數,輸入格式為時:分,時與分之間以一半形冒號隔開。一天工時為8小時,請依總工時計算,並輸出工作天數:小時:分鐘,如【2d:4h:0m】,中間以一個半形冒號分隔。若輸入文字或非法時間,請輸出【error】。
3. 輸入輸出:
輸入說明
工作總時數,格式為時:分(時與分之間以一半形冒號隔開)
輸出說明
工時計算結果(輸出最後一行後不自動換行)
範例輸入1
20:00
範例輸出1
2d:4h:0m
範例輸入2
06:50
範例輸出2
0d:6h:50m
範例輸入3
5:01
範例輸出3
0d:5h:1m
範例輸入4
19:99
範例輸出4
error
4. 評分項目:
(1) 符合設計說明輸出正確格式 配分20
作者:
may
時間:
2024-1-9 09:37
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
namespace CSA04
{
class CSA04
{
static void Main(string[] args)
{
try
{
//TODO
int days, hours, minutes;
ParseTime(Console.ReadLine(), out hours, out minutes);
days = hours / 8;
hours = hours % 8;
Console.Write("{0}d:{1}h:{2}m", days, hours, minutes); //TODO
}
catch
{
Console.Write("error");
}
Console.ReadKey();
}
static void ParseTime(string s, out int hours, out int minutes)
{
//DateTime dt = DateTime.ParseExact(
// Console.ReadLine(), "HH:mm", CultureInfo.InvariantCulture);
string[] tokens = s.Split(':');
if (tokens.Length != 2)
{
throw new ArgumentException();
}
// check the rule: \d{1,2}:\d{1,2}
if (tokens[0].Length > 2 || tokens[1].Length > 2)
{
throw new ArgumentException();
}
hours = int.Parse(tokens[0]);
minutes = int.Parse(tokens[1]);
if (hours < 0 || minutes < 0 || minutes > 59)
{
throw new ArgumentException();
}
}
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2