Menangani Pengecualian Kalender di Aspose.Tasks
Perkenalan
Dalam tutorial ini, kita akan mempelajari cara mengelola pengecualian kalender di Aspose.Tasks menggunakan kerangka .NET. Pengecualian kalender memungkinkan kami menentukan tanggal atau periode khusus dalam kalender proyek di mana jadwal kerja reguler diubah, seperti hari libur atau penutupan sementara. Kami akan membahas berbagai metode untuk menangani pengecualian kalender langkah demi langkah, menggunakan Aspose.Tasks untuk .NET.
Prasyarat
Sebelum kita mulai, pastikan Anda memiliki prasyarat berikut:
- Pengetahuan dasar bahasa pemrograman C#.
- Visual Studio diinstal pada sistem Anda.
- Aspose.Tasks untuk perpustakaan .NET ditambahkan ke proyek Anda.
Impor Namespace
Pertama, mari impor namespace yang diperlukan untuk proyek kita:
using Aspose.Tasks;
using System;
Langkah 1: Menghapus Pengecualian Kalender
Untuk menghapus pengecualian kalender, ikuti langkah-langkah berikut:
public void CalendarExceptionDelete()
{
var project = new Project(DataDir + "CalendarExceptions.mpp");
var calendar = project.Calendars.ToList()[0];
// Menampilkan informasi kalender
Console.WriteLine("Calendar Name: " + calendar.Name);
Console.WriteLine("Calendar Exception Count: " + calendar.Exceptions.Count);
// Hapus pengecualian pertama
calendar.Exceptions[0].Delete();
Console.WriteLine("Calendar Exception Count after Deletion: " + calendar.Exceptions.Count);
}
Langkah 2: Mendapatkan Waktu Kerja dari Pengecualian Kalender
Untuk mengambil waktu kerja pengecualian kalender, ikuti langkah-langkah berikut:
[Test]
public void CalendarExceptionGetWorkingTime()
{
var project = new Project(DataDir + "CalendarExceptions.mpp");
var calendar = project.Calendars.ToList()[0];
var exception = calendar.Exceptions[0];
// Menampilkan informasi kalender dan pengecualian
Console.WriteLine("Calendar Name: " + calendar.Name);
Console.WriteLine("Calendar Exception Count: " + calendar.Exceptions.Count);
Console.WriteLine("Calendar Exception Name: " + exception.Name);
// Dapatkan waktu kerja dan tampilkan detail
var workingTime = exception.GetWorkingTime();
Console.WriteLine("Exception Working Time: " + workingTime);
foreach (var time in exception.WorkingTimes)
{
Console.WriteLine("Working Time Start: " + time.From);
Console.WriteLine("Working Time Finish: " + time.To);
}
}
Langkah 3: Menentukan Pengecualian Kalender
Untuk menambah atau menghapus pengecualian kalender, ikuti langkah-langkah berikut:
[Test]
public void DefineCalendarExceptions()
{
var project = new Project(DataDir + "project_test.mpp");
var calendar = project.Calendars.Add("Calendar1");
// Buat pengecualian kalender baru
var exception = new CalendarException();
exception.Name = "New Calendar Exception";
// Tetapkan detail pengecualian
exception.EnteredByOccurrences = false;
exception.FromDate = new DateTime(2009, 12, 24, 0, 0, 0);
exception.ToDate = new DateTime(2009, 12, 31, 23, 59, 0);
exception.Type = CalendarExceptionType.Daily;
exception.Month = Month.December;
exception.DayWorking = false;
// Periksa apakah suatu tanggal merupakan pengecualian
Console.WriteLine("Is date an exception date: " + exception.CheckException(new DateTime(2009, 12, 26, 8, 0, 0)));
// Tambahkan pengecualian ke kalender
calendar.Exceptions.Add(exception);
// Hapus pengecualian jika ada
var cal = project.Calendars.ToList()[0];
if (cal.Exceptions.Count > 1)
{
var excToRemove = cal.Exceptions[0];
cal.Exceptions.Remove(excToRemove);
}
// Tambahkan pengecualian baru
var exception2 = new CalendarException();
exception2.FromDate = new System.DateTime(2009, 1, 1);
exception2.ToDate = new System.DateTime(2009, 1, 3);
cal.Exceptions.Add(exception2);
// Pengecualian cetak
foreach (var exc in cal.Exceptions)
{
Console.WriteLine("Name: " + exc.Name);
Console.WriteLine("From: " + exc.FromDate.ToShortDateString());
Console.WriteLine("To: " + exc.ToDate.ToShortDateString());
}
}
Kesimpulan
Dalam artikel ini, kami telah membahas berbagai aspek penanganan pengecualian kalender di Aspose.Tasks untuk .NET. Dengan mengikuti langkah-langkah yang disediakan, Anda dapat secara efektif mengelola pengecualian dalam jadwal proyek Anda, memastikan representasi jam kerja dan acara khusus yang akurat.
FAQ
Q1: Bisakah saya menambahkan beberapa pengecualian ke satu kalender?
A1: Ya, Anda dapat menambahkan beberapa pengecualian ke kalender untuk mengakomodasi berbagai tanggal atau periode khusus.
Q2: Bagaimana cara memeriksa apakah tanggal tertentu merupakan pengecualian?
A2: Anda dapat menggunakanCheckException()
metode untuk memverifikasi apakah tanggal tertentu termasuk dalam pengecualian.
Q3: Apakah mungkin untuk menghapus pengecualian yang ada dari kalender?
A3: Ya, Anda dapat menghapus pengecualian dengan mengaksesExceptions
koleksi kalender dan menggunakanRemove()
metode.
Q4: Jenis pengecualian kalender apa yang didukung?
A4: Aspose.Tasks mendukung berbagai jenis pengecualian, termasuk pengecualian harian, mingguan, bulanan, dan tahunan, memberikan fleksibilitas dalam menentukan aturan pengecualian.
Q5: Dapatkah saya menyesuaikan jam kerja untuk tanggal pengecualian tertentu?
A5: Ya, Anda dapat menentukan waktu kerja khusus untuk masing-masing tanggal pengecualian menggunakan metode yang sesuai yang disediakan oleh Aspose.Tasks.