標題:
C# 7 403 會議時間
[打印本頁]
作者:
may
時間:
2024-1-8 22:26
標題:
C# 7 403 會議時間
TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 14:57:46
1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS04資料夾中的CSD04.cs進行編寫。依下列題意進行作答:輸入特定日期範圍內的開會日期與時間,再判斷是否與預訂開會時間重複後,輸出判斷結果,使輸出值符合題意要求。檔案名稱請另存新檔為CSA04.cs,儲存於C:\ANS.CSF\CS04資料夾,再進行評分。
2. 設計說明:
專案中已提供五個會議時間{ "2018/12/01 14:00", "2018/12/02 15:00", "2018/12/03 10:30","2018/12/03 15:30","2018/12/04 15:00" },分別召開{ 1, 3, 4, 2, 5}個小時。
請撰寫程式,讓使用者輸入一個含有西元年、月、日、時、分的會議時間(日期與時間之間以一個半形空格分隔),判斷與專案中定義好的會議是否有重疊並將結果輸出,如會議時間重疊,顯示如【Has already reserved - yyyy/MM/dd HH:mm】(將被重疊的會議時間代入);如會議時間未重疊,顯示如【Reservation completed - yyyy/MM/dd HH:mm】(將新的會議時間代入)
專案中meetingDates代表開會起始時間、meetingHours代表開會時數。若輸入文字或非法時間,請輸出【error】。
* 提示1:重疊的定義是新的會議起始時間,與現有的會議起始時間一樣,或是位於現有的會議時段中。
* 提示2:新的會議起始時間,與現有的會議結束時間一樣,不算重疊。
3. 輸入輸出:
輸入說明
一個含有西元年、月、日、時、分的會議時間(日期與時間之間以一個半形空格分隔,如yyyy/MM/dd HH:mm)
輸出說明
是否與專案中定義好的會議時間重疊(輸出最後一行後不自動換行)
範例輸入1
2018/12/02 16:10
範例輸出1
Has already reserved - 2018/12/02 15:00
範例輸入2
2018/12/01 15:00
範例輸出2
Reservation completed - 2018/12/01 15:00
範例輸入3
2018/12/40 10:00
範例輸出3
error
4. 評分項目:
(1) 符合設計說明輸出正確格式 配分 20
作者:
may
時間:
2024-1-9 09:32
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSA04
{
class CSA04
{
static string[] meetingDates = { "2018/12/01 14:00", "2018/12/02 15:00", "2018/12/03 10:30","2018/12/03 15:30","2018/12/04 15:00" };
static int[] meetingHours = { 1, 3, 4 , 2, 5};
static void Main(string[] args)
{
try
{
DateTime newMeeting = Convert.ToDateTime(Console.ReadLine());
bool isOverlap = false;
string meetingOverlap = "";
for(int i = 0; i <= meetingDates.Length - 1; i++)
{
DateTime startMeeting = Convert.ToDateTime(meetingDates[i].ToString());
DateTime endMeeting = startMeeting.AddHours(meetingHours[i]);
if(DateTime.Compare(newMeeting, startMeeting)>=0 && DateTime.Compare(newMeeting, endMeeting) < 0)
{
isOverlap = true;
meetingOverlap = meetingDates[i].ToString();
break;
}
}
if (isOverlap)
{
Console.Write("Has already reserved - "+ meetingOverlap);
}
else
{
Console.Write("Reservation completed - "+ newMeeting.ToString("yyyy/MM/dd HH:mm"));
}
}
catch
{
Console.Write("error");
}
Console.ReadKey();
}
}
}
複製代碼
作者:
李泳霖
時間:
2024-2-5 21:13
using ConsoleApp1;
using System;//程式庫呼叫
using System.ComponentModel.DataAnnotations;
using System.Linq.Expressions;
using ABC.qq;
using System.Globalization;
class Program//負責一部分工作的人
{
static string[] meetingDates = { "2018/12/01 14:00", "2018/12/02 15:00", "2018/12/03 10:30", "2018/12/03 15:30", "2018/12/04 15:00" };
static int[] meetingHours = { 1, 3, 4, 2, 5 };
static void Main()
{
try
{
//將指定之日期和時間的字串表示,轉換為相等的日期和時間值。
DateTime newMeeting = Convert.ToDateTime(Console.ReadLine());
// Console.WriteLine(newMeeting.ToString());
bool isOverlap = false;
string meetOverlap = "";
for(int i=0;i<meetingDates.Length-1;i++)
{
DateTime startMeeting = Convert.ToDateTime(meetingDates[i].ToString());
DateTime endMeeting = startMeeting.AddHours(meetingHours[i]);
// Console.WriteLine(endMeeting.ToString());
//比較這個執行個體的值與指定的 DateTime 值,指出這個執行個體早於、同於或晚於指定的 DateTime 值。
/*
* 2018/12/02 16:10 2018/12/02 15:00 2018/12/02 18:00
* 值 描述
小於零 這個執行個體早於 value。
零 這個執行個體和 value 相同。
大於零 這個執行個體晚於 value。
*/
if (DateTime.Compare(newMeeting,startMeeting)>=0 && DateTime.Compare(newMeeting,endMeeting)<0)
{
isOverlap = true;
meetOverlap = meetingDates[i].ToString();
break;
}
}
if(isOverlap)
{
Console.WriteLine("Has already resvered - "+meetOverlap);
}
else
{
Console.WriteLine("Reservation completed - "+newMeeting.ToString("yyyy/MM/dd HH:mm"));
}
}
catch
{
Console.WriteLine("error");
}
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2