View Full Version : تفريق دو زمان مختلف
ali7100
چهارشنبه 29 دی 1389, 15:26 عصر
با سلام
من مي خواهم برنامه اي در cبنويسم كه ساعت شروع و پايان كار يك كارمند را بگيرد و از هم كم كند ولي نمي دانم چگونه ساعت ودقايق را از هم كم مي كنند لطفا راهنمايي بفرماييد.
quiet_programmer
چهارشنبه 29 دی 1389, 16:30 عصر
تفریق معمولی که بلدی؟
خوب فرض میکنیم میخوای hh:mm:ss رو از h1h1:m1m1:s1s1 کم کنی.
اول از ثانیه شروع میکنی اگه عدد ss بزرگتر از s1s1 بود به راحتی و بدون مشکل از هم کم میکنی. بعد میری رو دقیقه و به همون منوال کارت رو انجام میدی
حالا میرسی به جایی که نمیتونی تفریق کنی مثلا تو ثانیه ss کوچکتر از s1s1 بود اونوقت میای یکی از mm کم میکنی بعد 60 تا به ss اضافه میکنی و بعد تفریق رو انجام میدی. حالا اومدیمو تو دقیقه تفریق امکان پزیر نیود باز از hh یکی کم میکنی 60 تا به mm اضافه میکنی و بعد تفریق. و الی آخر
اگه خواستی بگو تا کد کنم ولی اگه توضیح رو خوب متوجه شده باشی خودت میتونی کد کنی.
ali7100
چهارشنبه 29 دی 1389, 18:51 عصر
با سلام
من این کد را نوشتم ولی درست اجرا نمی کند(فقط برای ساعت ودقیقه)#include<stdio.h>
#include<conio.h>
int main(){
int h,m,a,b,c,d;
printf("enter your time\n");
scanf("%d",&h);
printf(":");
scanf("%d",&m);
printf("enter your time 2\n");
scanf("%d",&a);
printf(":");
scanf("%d",b);
if(b>m){
h--;
m+=60;
c=m-b;
d=h-a;
printf("time is %d:%d",d,c);}
else{
c=m-b;
d=h-a;
printf("time is %d:%d",d,c);}
getch();
return 0;
}
quiet_programmer
چهارشنبه 29 دی 1389, 19:43 عصر
scanf("%d",&b);
اصلاح کن. علامت & اش افتاده.
در ضمن روش دیگه برای این کار اینه که ساعت و دقیقه رو به دقیقه تبدیل کنی و بعد تفریق کنی در نهایت عدد بدست اومده رو دوباره به ساعت و دقیقه تبدیل کنی.
این هم کد من:
#include <iostream.h>
#include <conio.h>
void main()
{
int Minute1,Minute2,Hour1,Hour2;
cin>>Hour1>>Minute1>>Hour2>>Minute2;
if (Minute1<Minute2)
{
Hour1--;
Minute1+=60;
}
Minute1-=Minute2;
if (Hour1<Hour2)
cout<<"Diff Time OverFlow"<<endl;
else
Hour1-=Hour2;
cout<<"Result:"<<Hour1<<":"<<Minute1;
getch();
}
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.