Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,844 questions

55,671 answers

573 users

How to compute the day of the week for January 1st of any given year in Pascal

1 Answer

0 votes
program Jan1Weekday;

{$mode objfpc}{$H+}{$J-}

{
    This program determines the day of the week for January 1st of a given year.

    Approach:
    ---------
    Free Pascal provides built‑in date/time routines in the SysUtils unit:
        - EncodeDate(Y, M, D) : converts a calendar date into a TDateTime value
        - DayOfWeek(Date)     : returns the weekday number (1..7)

    DayOfWeek meaning:
        1 = Sunday
        2 = Monday
        3 = Tuesday
        4 = Wednesday
        5 = Thursday
        6 = Friday
        7 = Saturday

    This avoids manual calendar arithmetic and uses efficient built‑in routines.
}

uses
    SysUtils;

function WeekdayName(DayNum: Integer): String;
begin
    case DayNum of
        1: Result := 'Sunday';
        2: Result := 'Monday';
        3: Result := 'Tuesday';
        4: Result := 'Wednesday';
        5: Result := 'Thursday';
        6: Result := 'Friday';
        7: Result := 'Saturday';
    else
        Result := 'Unknown';
    end;
end;

function Jan1Weekday(Year: Integer): String;
var
    DateValue: TDateTime;
    W: Integer;
begin
    { Encode January 1st of the given year }
    DateValue := EncodeDate(Year, 1, 1);

    { DayOfWeek returns 1..7 }
    W := DayOfWeek(DateValue);

    { Convert numeric weekday to readable name }
    Result := WeekdayName(W);
end;

var
    year: Integer;
    resultStr: String;

begin
    year := 2026;

    resultStr := Jan1Weekday(year);
    WriteLn('January 1st, ', year, ' falls on a ', resultStr, '.');
end.



{
run:

January 1st, 2026 falls on a Thursday.

}

 



answered Jul 11 by avibootz

Related questions

...