360 Days Calendar

Regular Calendar

The 360 Days Calendar


( FREE OPEN SOURCE API )

Experience the most precise and consistent way to track time with the 360 days calendar!

Why Switch to 360 Days?

The 360 days calendar redefines timekeeping by aligning perfectly with the tropical year. With 360 days divided into 12 months of 30 days each, and a slightly longer second (1014.5616 milliseconds instead of 1000), this system eliminates the need for leap years or periodic corrections, offering unmatched simplicity and precision.

Benefits of the 360 Days Calendar

  • Unmatched Precision

    By adjusting the second to 1014.5616 milliseconds, the calendar matches the tropical year exactly, with no need for adjustments like leap days.

  • Perfect Consistency

    Every month has exactly 30 days, making planning and scheduling straightforward and predictable.

  • Simplified Structure

    12 months of 30 days each total 360 days per year, providing a balanced and uniform calendar system.

  • Future-Proof Design

    This calendar never drifts, ensuring it remains accurate for centuries without manual corrections.

Join the Time Revolution

Ready to embrace a smarter way to measure time? The 360 days calendar offers a modern, precise alternative to the Gregorian system. Let’s make timekeeping simple and exact—join us at 360days.org!

Fun Facts & Testimonials

“No more leap year confusion—just 360 perfect days!”

- Alex, Time Enthusiast

“My planner loves the 30-day months. So do I!”

- Maria, Organized Forever

“The longer second? Didn’t notice, but I love the precision!”

- Sam, Casual Convert

“Finally, a calendar that doesn’t fight the stars!”

- Luna, Astrology Fan

API code examples for route /today

Preview in browser: https://360days.org/today


fetch('https://360days.org/today')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
            

import requests

try:
    response = requests.get('https://360days.org/today')
    data = response.json()
    print(data)
except Exception as e:
    print(f"Error: {e}")
            

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://360days.org/today");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            Scanner scanner = new Scanner(conn.getInputStream());
            StringBuilder response = new StringBuilder();
            while (scanner.hasNext()) {
                response.append(scanner.nextLine());
            }
            scanner.close();
            System.out.println(response.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
            

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        using (var client = new HttpClient()) {
            try {
                var response = await client.GetStringAsync("https://360days.org/today");
                Console.WriteLine(response);
            } catch (Exception ex) {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }
}
            

require 'net/http'
require 'json'

begin
  uri = URI('https://360days.org/today')
  response = Net::HTTP.get(uri)
  data = JSON.parse(response)
  puts data
rescue StandardError => e
  puts "Error: #{e.message}"
end
            

API code examples for route /convert

Preview in browser:
https://360days.org/convert?date=2025-03-27&toCalendar=calendar360
https://360days.org/convert?date=2025-03-27&toCalendar=gregorian


fetch('https://360days.org/convert?date=2025-03-27&toCalendar=calendar360')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
            

import requests

try:
    response = requests.get('https://360days.org/convert?date=2025-03-27&toCalendar=calendar360')
    data = response.json()
    print(data)
except Exception as e:
    print(f"Error: {e}")
            

import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        try {
            URL url = new URL("https://360days.org/convert?date=2025-03-27&toCalendar=calendar360");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            Scanner scanner = new Scanner(conn.getInputStream());
            StringBuilder response = new StringBuilder();
            while (scanner.hasNext()) {
                response.append(scanner.nextLine());
            }
            scanner.close();
            System.out.println(response.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
            

using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        using (var client = new HttpClient()) {
            try {
                var response = await client.GetStringAsync("https://360days.org/convert?date=2025-03-27&toCalendar=calendar360");
                Console.WriteLine(response);
            } catch (Exception ex) {
                Console.WriteLine($"Error: {ex.Message}");
            }
        }
    }
}
            

require 'net/http'
require 'json'

begin
  uri = URI('https://360days.org/convert?date=2025-03-27&toCalendar=calendar360')
  response = Net::HTTP.get(uri)
  data = JSON.parse(response)
  puts data
rescue StandardError => e
  puts "Error: #{e.message}"
end