فهرست منبع

LibJS: Implement Date's Week Day AO

Timothy Flynn 3 سال پیش
والد
کامیت
baf3f3bd6e
2فایلهای تغییر یافته به همراه8 افزوده شده و 0 حذف شده
  1. 7 0
      Userland/Libraries/LibJS/Runtime/Date.cpp
  2. 1 0
      Userland/Libraries/LibJS/Runtime/Date.h

+ 7 - 0
Userland/Libraries/LibJS/Runtime/Date.cpp

@@ -307,6 +307,13 @@ u16 ms_from_time(double t)
     return static_cast<u16>(modulo(t, MS_PER_SECOND));
     return static_cast<u16>(modulo(t, MS_PER_SECOND));
 }
 }
 
 
+// 21.4.1.6 Week Day, https://tc39.es/ecma262/#sec-week-day
+u8 week_day(double t)
+{
+    // 𝔽(ℝ(Day(t) + 4𝔽) modulo 7)
+    return static_cast<u8>(modulo(day(t) + 4, 7.0));
+}
+
 // 21.4.1.11 MakeTime ( hour, min, sec, ms ), https://tc39.es/ecma262/#sec-maketime
 // 21.4.1.11 MakeTime ( hour, min, sec, ms ), https://tc39.es/ecma262/#sec-maketime
 Value make_time(GlobalObject& global_object, Value hour, Value min, Value sec, Value ms)
 Value make_time(GlobalObject& global_object, Value hour, Value min, Value sec, Value ms)
 {
 {

+ 1 - 0
Userland/Libraries/LibJS/Runtime/Date.h

@@ -98,6 +98,7 @@ u8 hour_from_time(double);
 u8 min_from_time(double);
 u8 min_from_time(double);
 u8 sec_from_time(double);
 u8 sec_from_time(double);
 u16 ms_from_time(double);
 u16 ms_from_time(double);
+u8 week_day(double);
 double day(double);
 double day(double);
 Value make_time(GlobalObject& global_object, Value hour, Value min, Value sec, Value ms);
 Value make_time(GlobalObject& global_object, Value hour, Value min, Value sec, Value ms);
 Value make_day(GlobalObject& global_object, Value year, Value month, Value date);
 Value make_day(GlobalObject& global_object, Value year, Value month, Value date);