Tabs einer Kalender-Konsolenanwendung mit C - c, Konsolenanwendung

Ich implementiere einen einfachen Jahreskalender intraditionelles Format in einer Konsolenanwendung mit ANSI C. Der Kalender muss im Format 3 x 4 Monate in einem Tab angezeigt werden. Bis jetzt konnte ich alle Monate untereinander anzeigen, wie im folgenden Code gezeigt. Irgendwelche Hilfe wie kann ich den Tabbing Teil angehen? Ich habe versucht, den Monat [] in 3 entsprechend der Spalte zu trennen, zum Beispiel Jan, April, Juli und Oktober werden die 1. Spalte sein und dann Spalte für Spalte arbeiten, aber ich weiß nicht, ob es das beste ist, was zu tun ist. ..eine Hilfe bitte?

#include<stdio.h>

int main()
{
int d,y,no_lp,n,i=1,j,month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

printf("Enter year:");
scanf("%d", &y);

if (y%4==0)
{month[2]=29;}

no_lp= (27 + (42/5) + (y-1) + ((y-1)/4) - ((y-1)/100) + ((y-1)/400) + 1);
d= no_lp%7;

n=d;

for(j=1;j<=12;j++)
{
printf("nn       %s",monthname[j]);
//printf ("nn%d",j);
printf("n Su Mo  Tu  We  Th  Fr  San");

while(d--!=0)
printf("    ");  //spaces for empty days

while(i<=month[j])
{
if(i<10)
{printf(" %d  ",i++);} //formating for dates with 2 digits

else{printf("%d  ",i++);}//formatting for dates with 1 digit
n++;

if(n==7)        //if 7 is reached start new line
{
n=0;
printf("n");
}
}

d=n;
i=1;            //n will be the 1st day of next month
}

return(0);
}

Antworten:

0 für die Antwort № 1

Sie können ersetzen

   if(i<10)
{printf(" %d  ",i++);} //formating for dates with 2 digits

else{printf("%d  ",i++);}//formatting for dates with 1 digit

mit

printf("%2d  ",i++);

Um 3 * 4 zu drucken, drucken Sie nicht im laufenden Betrieb

Speichern Sie diese Werte

char out[12][6][24];
|  |  |
n months <-  |  -> string containing week in calendar (e.g 10 11 12 13 14 15 17)
V
Max weeks in a month

und drucken

week 1 month 1 , week 1 month 2 ,  week 1 month 3
week 2 month 1 , week 2 month 2 ,  week 2 month 3
week 3 month 1 , week 3 month 2 ,  week 3 month 3
...
week 1 month 4 , week 1 month 5 ,  week 1 month 6
week 2 month 4 , week 2 month 5 ,  week 2 month 6
week 3 month 4 , week 3 month 5 ,  week 3 month 6
...

...

Speisekarte