从UTCTime中提取秒并异步休眠

时间:2017-12-10 11:00:37

标签: haskell

from django.db import models
class BaseModel(models.Model):

    class Meta:
        abstract = True  # specify this model as an Abstract Model    
        app_label = 'your_project_name'


class Project(BaseModel):
    name = models.CharField(max_length=200, unique=True)
    description = models.TextField
    client = models.CharField(max_length=200)

    def __str__(self):
        return self.name

我有几个与上述代码相关的问题

  1. 有一种方法可以直接从#include<iostream> using namespace std; string kolom(int s){ string h; if(s==0){ h="NPM"; }else if(s==1){ h="Name"; }else if(s==2){ h="Address"; } return h; } int main(){ int m[4][3],a,b,c,i,j; for(i=0;i<5;i++){ for(j=0;j<3;j++){ cout<<"Input "<<kolom(j)<<endl; cin>>m[i][j]; } } } 中提取秒#include<iostream> using namespace std; string kolom(int s){ string h; if(s==0){ h="NPM"; }else if(s==1){ h="Name"; }else if(s==2){ h="Address"; } return h; } int main(){ int a,b,c,i,j,k; k=1; string m[4][2]; for(i=0;i<5;i++){ cout<<"Data ke-"<<k++<<endl; for(j=0;j<3;j++){ cout<<"Input "<<kolom(j)<<endl; cin>>m[i][j]; } cout<<endl; } } ,而无需将其转换为本地时间,而则不会指定时区? (如果是的话:怎么样?如果没有:为什么?)
  2. 如何在上述秒数内实际运行正在运行的线程/任务异步睡眠

1 个答案:

答案 0 :(得分:2)

问题2很简单:您可以使用delay使您的Haskell进程休眠指定的微秒数。

如果我理解你的问题1,你希望能够指定30秒,并等到下一次系统时钟超过分钟30秒。因此,如果你在13:23:27调用你的函数它将等待3秒直到13:23:30,但是如果你在13:23:33调用它,它将等待57秒直到13:24:30。

这是对秒数进行算术运算的问题。我建议你使用getPOSIXTime获取当前的Posix时间。这将返回NominalDiffTime,它是RealRealFrac的实例,因此正常的算法运行正常。你想要的代码是:

t <- getPOSIXTime
let secs = t - fromIntegral (floor (t/60) * 60)

一旦你有超过一分钟的秒数,你就可以计算出等到目标时间的时间。