---
name: "ddate"
section: "1"
platform: "linux"
package: "ddate"
version: "0.2.2-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ddate"
---

# ddate(1)

convert Gregorian dates to Discordian dates

## NAME

ddate - convert Gregorian dates to Discordian dates

## SYNOPSIS

**ddate** \[***+**format\]* \[*date*\]

## DESCRIPTION

**ddate** prints the date in Discordian date format.

If called with no arguments, **ddate** will get the current system date, convert this to the Discordian date format and print this on the standard output. Alternatively, a Gregorian date may be specified on the command line, in the form of a numerical day, month and year.

If a format string is specified, the Discordian date will be printed in a format specified by the string. This mechanism works similarly to the format string mechanism of **[date(1)](/date/1.md),** only almost completely differently. The fields are:

- %A

  Full name of the day of the week (i.e., Sweetmorn)

- %a

  Abbreviated name of the day of the week (i.e., SM)

- %B

  Full name of the season (i.e., Chaos)

- %b

  Abbreviated name of the season (i.e., Chs)

- %d

  Ordinal number of day in season (i.e., 23)

- %e

  Cardinal number of day in season (i.e., 23rd)

- %H

  Name of current Holyday, if any

- %N

  Magic code to prevent rest of format from being printed unless today is a Holyday.

- %n

  Newline

- %t

  Tab

- %X

  Number of days remaining until X-Day. (Not valid if the SubGenius options are not compiled in.)

- %{

  - %}

  Used to enclose the part of the string which is to be replaced with the words "St. Tib's Day" if the current day is St. Tib's Day.

- %.

  Try it and see.

## EXAMPLES

```
% ddate
Sweetmorn, Bureaucracy 42, 3161 YOLD
```

% ddate +'Today is %{%A, the %e of %B%}, %Y. %N%nCelebrate %H'\
 Today is Sweetmorn, the 42nd of Bureaucracy, 3161.

% ddate +"It's %{%A, the %e of %B%}, %Y. %N%nCelebrate %H" 26 9 1995\
 It's Prickle-Prickle, the 50th of Bureaucracy, 3161.\
 Celebrate Bureflux

% ddate +"Today's %{%A, the %e of %B%}, %Y. %N%nCelebrate %H" 29 2 1996\
 Today's St. Tib's Day, 3162.\

## BUGS

**[ddate(1)](/ddate/1.md)** will produce undefined behavior if asked to produce the date for St. Tib's day and its format string does not contain the St. Tib's Day delimiters %{ and %}.

## NOTE

After \`X-Day' passed without incident, the Church of the SubGenius declared that it had got the year upside down - X-Day is actually in 8661 AD rather than 1998 AD.  Thus, the True X-Day is Cfn 40, 9827.

## AUTHOR

Original program by Druel the Chaotic aka Jeremy Johnson (mpython@gnu.ai.mit.edu)\
 Major rewrite by Lee H:. O:. Smith, KYTP, aka Andrew Bulhak (acb@dev.null.org)\
 Gregorian B.C.E. dates fixed by Chaplain Nyan the Wiser, aka Dan Dart (ntw@dandart.co.uk)\
 Five tons of flax.

## DISTRIBUTION POLICY

Public domain. All rites reversed.

## SEE ALSO

[date(1)](/date/1.md),\
 http://www.subgenius.com/\
 Malaclypse the Younger, *Principia Discordia, Or How I Found Goddess And What I Did To Her When I Found Her*

## AVAILABILITY

The ddate command is available from https://github.com/bo0ts/ddate.
