← Retour au blog
tech 17 August 2026

A Faster Way to Calculate the Day-of-the-Week

Discover how to optimize day-of-the-week calculation with fast modulus techniques, outperforming current solutions and tailored for different platforms.

Article inspired by the original source
A faster way to calculate the day-of-the-week ↗ www.benjoffe.com

Introduction

Calculating the day of the week from a day count since a reference date might seem straightforward. Yet, it's a more complex problem than it appears. With fast modulus techniques, it's possible to significantly enhance the efficiency of this calculation. This article explores these techniques, tailored for various platforms and use cases.

Why Optimization Matters

In a world where every processor cycle counts, optimizing the day-of-the-week calculation can significantly impact software performance, especially in date libraries, database engines, and more generally, in all systems requiring fast temporal calculations.

The Basics of Calculation

Traditionally, calculating the day of the week involves converting a "day-count" (rata-die) into a weekday value. This conversion is often done with division and remainder operations, which can be costly in terms of processor cycles.

Examples of Traditional Methods

  • Simple Division: Using the modulo operation to get the remainder of a division by seven.
  • Table-Based Approaches: Pre-calculating and storing values to avoid repeated operations.

Fast Modulus Techniques

Fast modulus techniques involve using multiplication and shift operations (mul-add-shift) to more efficiently compute the day of the week.

Mul-Add-Shift Algorithm

This algorithm uses a sequence of three instructions combined with a constant load to determine the day of the week. For instance, with a 32-bit signed day count "rd", you can calculate:

``assembly mov eax, 613566756 ; Constant Load: u32 M = (1 << 32) / 7 imul ecx ; rd M (u32 a = low bits, i32 b = high bits) lea eax, [eax-1828716544+edx4] ; u32 r = a + 4 * b + (Z = 0x93000000) shr eax, 29 ; weekday = r >> 29 ``

This method is incredibly fast and works over the entire signed 32-bit range, offering high throughput, particularly on x86 architectures.

Advantages of New Methods

  • Increased Performance: Significant improvements in latency and throughput.
  • Versatility: Applicability to multiple platforms, notably modern processors like AMD Ryzen 9 and Apple M4 Pro.

Benchmarks and Results

The new algorithms have been tested on various processors with impressive results:

  • Neri (2024): 1× (baseline)
  • New Algorithms (2026): ~0.3-0.5× (faster)

Conclusion

Optimizing the day-of-the-week calculation might seem trivial, but it offers significant performance benefits. With the techniques described here, you can make your software faster and more efficient.

Let's discuss your project in 15 minutes.

day-of-the-week fast modulus optimization mul-add-shift performance
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call