การเลื่อนวันทำงานโดยนับวันหยุด
เลื่อนวันที่ตั้งแต่ลบ 366 ถึง 366 วันทำงาน โดยข้ามสุดสัปดาห์และวันหยุดไม่เกิน 1000 วัน.
from datetime import date, timedelta
def working_day_shift(start, days, holidays):
if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
raise ValueError("days.input")
if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
raise ValueError("days.holidays")
remaining, step = abs(days), 1 if days >= 0 else -1
for _ in range(7*(remaining+len(holidays))+7):
if remaining == 0:
return start
try:
start += timedelta(days=step)
except OverflowError as error:
raise ValueError("days.range") from error
if start.weekday() < 5 and start not in holidays:
remaining -= 1
raise RuntimeError("days.steps")- โปรเจกต์
- ทดสอบศูนย์ ย้อนกลับ และขอบเขตปฏิทิน ปฏิเสธวันที่ผิดโดยไม่เปลี่ยนวันหยุด.
- ตรวจสอบก่อนนำไปใช้
- เปรียบเทียบการทำงานจริงกับผลที่คาดหวัง หากการตรวจสอบไม่ผ่าน ให้หาสาเหตุก่อนแก้ไขเพิ่มเติม
- โมเดล
- ตั้งค่า endpoint ที่รองรับ OpenAI หรือ Anthropic ด้วย URL หลักและคีย์ API หากจำเป็น ทดสอบการเชื่อมต่อ เซิร์ฟเวอร์โมเดลในเครื่องต้องทำงานอยู่ เครื่องมือระยะไกลอาจส่งข้อมูลแยกต่างหาก
from datetime import date, timedelta
def working_day_shift(start, days, holidays):
if type(start) is not date or type(days) is not int or not -366 <= days <= 366:
raise ValueError("days.input")
if type(holidays) is not set or len(holidays) > 1000 or any(type(d) is not date for d in holidays):
raise ValueError("days.holidays")
remaining, step = abs(days), 1 if days >= 0 else -1
for _ in range(7*(remaining+len(holidays))+7):
if remaining == 0:
return start
try:
start += timedelta(days=step)
except OverflowError as error:
raise ValueError("days.range") from error
if start.weekday() < 5 and start not in holidays:
remaining -= 1
raise RuntimeError("days.steps")ระบุกฎจัดตารางให้ชัดก่อนแก้โค้ดวันที่
โค้ดจัดตารางมักผสมนโยบายธุรกิจกับเลขคณิตปฏิทินทั่วไป DayThistle เป็นพื้นที่เขียนโค้ดด้วย AI บน Windows ที่แยกคำถามเหล่านั้นได้ขณะตรวจโครงการ เริ่มด้วยวันที่แอปพลิเคชันให้ วันที่คาดหวัง และกฎเบื้องหลังความคาดหวัง ขอให้โมเดลที่เชื่อมต่อตรวจโค้ดที่เกี่ยวข้องก่อนเสนอแก้
ตัวอย่างเช่น คุณอาจขอให้ตรวจฟังก์ชันกำหนดเส้นตายที่ข้ามวันสุดสัปดาห์และชุดวันหยุดที่ส่งให้ อธิบายว่านับวันเริ่มหรือไม่ การเลื่อนค่าลบทำงานอย่างไร และใครให้ข้อมูลวันหยุด ขอข้อเสนอที่รักษาการตัดสินใจเหล่านี้ทั้งในผู้เรียกและฟังก์ชัน ไม่สมมติว่าวันทำงานมีคำนิยามสากลเดียว
ยืนยันการแก้ที่เสนอด้วยกรณีทดสอบจากกฎเหล่านั้น รวมการข้ามสุดสัปดาห์ วันหยุดติดสุดสัปดาห์ การเลื่อนศูนย์วัน และการเลื่อนย้อนหลัง รันการทดสอบโครงการและตรวจพฤติกรรมขอบเขตสำหรับวันที่ไม่รองรับ เส้นตายที่ดูถูกในตัวอย่างเดียวไม่ได้ยืนยันว่าผู้เรียกทั้งหมดใช้นโยบายเดียวกัน
DayThistle เชื่อมต่อปลายทางที่รองรับและเข้ากันได้กับ OpenAI หรือปลายทาง Anthropic คุณเลือกโมเดล AI ไร้การเซ็นเซอร์ที่บริการมีให้ได้ เครื่องมือและบริบทที่มีอยู่ยังขึ้นอยู่กับเซิร์ฟเวอร์ เขียนนโยบายไว้ในงานเพื่อให้โมเดลช่วยเขียนโค้ดโดยไม่แอบตัดสินว่าองค์กรของคุณจัดตารางงานอย่างไร
คำถามเบื้องหลังการแก้วันทำงาน
DayThistle มีปฏิทินวันหยุดให้หรือไม่?
งานตัวอย่างใช้ข้อมูลวันหยุดที่แอปพลิเคชันของคุณให้ ระบุแหล่งและขอบเขตความครอบคลุมที่คาดหวังในคำขอ อย่าสมมติว่าการเปิดพื้นที่ทำงานให้วันหยุดภูมิภาคปัจจุบันหรือเลือกว่าวันสำคัญใดกระทบเส้นตาย
ควรนับวันเริ่มในการเลื่อนหรือไม่?
ระบุกฎนี้ชัดและรวมกรณีทดสอบที่วันเริ่มเป็นวันทำงาน นโยบายต่างกันให้คำตอบต่างกัน ขอให้ผู้ช่วยรักษาข้อตกลงที่เลือกทั้งการเลื่อนไปข้างหน้าและย้อนหลัง
จะแยกข้อมูลวันหยุดผิดจากข้อบกพร่องโค้ดอย่างไร?
เก็บชุดวันหยุดที่แน่นอนไว้กับกรณีทดสอบที่ล้มเหลวและตรวจเนื้อหาก่อนเปลี่ยนการคำนวณ เทียบผลกับนโยบายที่เขียนไว้ วันหยุดที่ขาดและเงื่อนไขข้ามวันที่ผิดต้องแก้คนละแบบ
หากลูปที่เสนอไม่มีเงื่อนไขหยุดชัดเจนล่ะ?
ถามว่าโค้ดจำกัดการเลื่อนที่รองรับและจัดการค่าล้นปฏิทินอย่างไร ตรวจพฤติกรรมนั้นก่อนยอมรับ รันการทดสอบขอบเขตพร้อมวันที่ทั่วไปเพื่อไม่ให้การแก้เส้นตายหนึ่งกรณีนำไปสู่การคำนวณไม่สิ้นสุด
DayThistle · อัปเดตล่าสุด 2026-10-25